【问题标题】:openCV Canny edge detection improvementopenCV Canny 边缘检测改进
【发布时间】:2019-11-13 23:49:20
【问题描述】:

我正在尝试在我的 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 results

【问题讨论】:

  • 我建议您使用 cv2.inRange 进行颜色阈值处理。然后对阈值结果进行边缘检测。
  • 我认为由于该图的颜色图存在混淆。其实是灰度图……

标签: opencv canny-operator


【解决方案1】:

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

考虑使用形态学。您可以使用形态梯度检测此类对象(连接,内部没有孔)的边缘,这不依赖于阈值。 形态转换的文档: https://docs.opencv.org/2.4.13.7/modules/imgproc/doc/filtering.html?highlight=morphologyex#cv2.morphologyEx

【讨论】:

  • 感谢您的建议。目前我只使用skimage,因为opencv不支持dicom图像导入..你知道skimage库中哪个函数与opencv的形态梯度参数兼容吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-30
相关资源
最近更新 更多