- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我是 Opencv 的新手,我最近一直在使用分水岭算法,目前我尝试使用不同的颜色标记来分割图像,但我也想显示这些片段。
有没有什么方法可以做到这一点,就像我们在使用简单线性迭代聚类函数和标记边界函数的简单线性迭代聚类超像素分割中所做的那样
使用 Opencv 和 python。
谢谢。
最佳答案
先关注THIS DOCUMENTATION获取图像中的标记。我使用了本文档中存在的相同图像。
之后逐行执行此代码并可视化每个变量包含的内容:
每个唯一的连接组件在变量 markers
中被分配一个唯一的值。我正在将 markers
中存在的那些值规范化为整数。每个连接的组件都可以在列表 uniq_thresh
中提到的特定阈值处获得。
label_hue = np.uint8(179*markers/1)
uniq_thresh = np.unique(label_hue).tolist()
cv2.imshow('label_hue', label_hue)
uniq_thresh.sort(reverse=True)
prev
是一张与原始图像形状相同但像素值为 0 的图像。
prev = np.zeros_like(label_hue)
现在,对于列表 uniq_thresh
中的每个唯一阈值,我正在显示连接的组件。但是由于 thresh
返回的图像的组件超过某个阈值,我从中减去先前的阈值图像以获得单个组件。
for th in uniq_thresh:
print(th)
ret, thresh = cv2.threshold(label_hue, th, 255, cv2.THRESH_BINARY)
cv2.imshow('ind', thresh)
cv2.imshow('ind2', thresh - prev)
prev = thresh
cv2.waitKey(0)
cv2.destroyAllWindows()
关于python - 显示分水岭算法的分割,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50363071/
我的问题是如何在 Android Watershed OpenCv 上计算图像中的对象数? 最佳答案 因为您没有告诉我们是哪一行导致了这些问题,但我强烈认为您误用了 erode() 和 dilate(
我正在使用精明的边缘检测和查找轮廓函数(均为 OpenCV)为分水岭变换创建标记。一切正常,但我对结果不是 100% 满意。原因是一些边丢失了,因此丢失了重要信息。更详细地说,我得到了一堆窗口(前 V
我正在尝试使用 OpenCV 分水岭算法 ( https://docs.opencv.org/3.1.0/d3/db4/tutorial_py_watershed.html ),但稍作改动。文档中有这
我正在为 OpenCV 中的分水岭编写代码。 但我希望分水岭边界是 4 点连接而不是 8 点连接。 目前是这个界面: void watershed(InputArray image, InputOut
我是一名优秀的程序员,十分优秀!