使用OpenCV进行垂直曲线检测

时间:2019-07-24 15:14:22

标签: python image opencv image-processing detection

我想检测图像中间的垂直曲线。你有什么想法吗?我想用线条将左右两侧分开。我应该使用什么功能或过滤器?非常感谢您提出的检测线的想法。

这是图像的链接:

enter image description here

顺便说一句:我在Python中使用OpenCV库。

1 个答案:

答案 0 :(得分:2)

这是一种简单的方法

  • 将图像转换为灰度和中值模糊
  • 获取二进制图像的阈值
  • 执行morphological transformations来平滑图像
  • 执行Canny边缘检测

中位数模糊→阈值→打开→关闭→Canny

import cv2

image = cv2.imread('1.jpg', 0)
blur = cv2.medianBlur(image, 9)
thresh = cv2.threshold(blur, 25, 255, cv2.THRESH_BINARY)[1]
kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (9,9))
opening = cv2.morphologyEx(thresh, cv2.MORPH_OPEN, kernel, iterations=3)
close = cv2.morphologyEx(thresh, cv2.MORPH_CLOSE, kernel, iterations=3)
canny = cv2.Canny(close, 120, 255, 1)

cv2.imshow('canny', canny)
cv2.waitKey()