【发布时间】:2016-11-09 12:55:14
【问题描述】:
我正在尝试按照教程将分水岭算法应用于图像:OpenCv WaterShed Docs。我之前在灰度图像上应用了高斯滤波和形态变换后的 Otsu 阈值处理,以根据代码提高图像质量:
img = cv2.imread('Results\Feb_16-0.jpg',0)
kernel = np.ones((1,1),np.uint8)
opening = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)
blur = cv2.GaussianBlur(opening,(1,1),0)
ret3,th4 = cv2.threshold(blur,0,255,cv2.THRESH_BINARY+cv2.THRESH_OTSU)
按照代码应用距离变换作为分水岭算法的第一阶段:
# sure background area
sure_bg = cv2.dilate(opening,kernel,iterations=1)
# Finding sure foreground area
dist_transform = cv2.distanceTransform(opening,cv2.DIST_L2,3)
产生错误:
error: (-215) src.type() == CV_8UC3 && dst.type() == CV_32SC1 in function cv::watershed
其中正在尝试将 8 位 3 通道图像转换为 32 位单通道图像。如何防止这种情况发生,同时使用距离变换?
【问题讨论】:
-
你能解决吗?
-
很遗憾我没能解决
-
我似乎根本没有收到此错误。你能上传你正在使用的图片吗?
-
此外,使用 1 的内核大小进行卷积不会改变任何内容。尝试将内核大小更改为 3 或更大
标签: python opencv computer-vision opencv3.0 watershed