openCV Canny边缘检测改进



我正试图在我的python代码中使用openCV Canny边缘检测器。我想沿着物体的边缘进行边缘检测,这与皮肤相对应。

我做到了:

**im = img[0]
bw = im > thAir
eg1 = cv2.Canny(np.uint8(im),thAir,thBone)
eg2 = cv2.Canny(np.uint8(bw), 0,1)
fig,ax = plt.subplots(1,4)
ax[0].imshow(im)
ax[1].imshow(bw)
ax[2].imshow(eg1)
ax[3].imshow(eg2)
plt.show()**

其中thBone是它可以具有的最大值,thAir是的最小值

然而,显然,检测没有起作用。。。有什么改进的想法吗?

imshow结果

thAirthBone的值是多少?Canny边缘检测器的准确性在很大程度上取决于这些阈值的选择。

还可以考虑使用形态学。你可以用形态梯度来检测这类物体的边缘(连接的,里面没有洞(,这不取决于阈值。形态转换文件:https://docs.opencv.org/2.4.13.7/modules/imgproc/doc/filtering.html?highlight=morphologyex#cv2.morphologyEx

最新更新