什么样的过滤器适合检测OpenCV中土壤上的裂缝?

时间:2019-06-27 13:58:31

标签: python python-3.x opencv filtering contour

我的任务是计算土壤表面裂缝的总面积。以下是一些可能的输入图像的示例:

img1

img2

img3

img4

我可以轻松地检测出土壤表面:

Only Soil

但是,对我来说,准确地检测裂缝很复杂。经过大量研究,我决定将双向过滤器与Canny Edges结合使用以检测裂纹。这是我的代码:

  blur = cv2.bilateralFilter(gray, 5, 60, 40)
  canny_cracks = cv2.Canny(blur, 100, 200)

  # Morphological Transformation for closing edges 
  kernel = np.ones((val, val))
  res = cv2.morphologyEx(canny_cracks, cv2.MORPH_CLOSE, kernel)

  cv2.imshow('Result', res)

Output

但是,它并不像我期望的那么准确。我的问题是,为了更准确地检测裂纹,哪种滤波器和阈值化将是最佳选择?我尝试使用cv2.findContours代替cv2.Canny,这带来了很多噪音。对于这样一个具体的问题,我感到很抱歉,我是OpenCV的新手。

0 个答案:

没有答案