如何使用OpenCV用粗略的水平线细化图像?

时间:2019-05-22 05:09:57

标签: c++ opencv image-processing

我的这种图像的水平线很粗糙,我想将其删除或至少使这些线不可见。

enter image description here

使用诸如高斯模糊之类的平滑技术,由于线条仍然可见,我无法获得令人满意的结果,这只会降低图像的分辨率。

cv::GaussianBlur(image, result, cv::Size(5, 5), 3);

enter image description here

还有其他更适合我的问题的方法吗?谢谢

1 个答案:

答案 0 :(得分:2)

正如@ gameon67所建议的那样,您可以使用1x15的内核大小来增加y方向的模糊并省略x方向。但是,在这种情况下,我觉得平均滤波比高斯滤波更适合。您可以在官方documentation中详细了解它们。

img = cv2.blur(img,(1, 15)) # average filtering

average filtering result

img = cv2.GaussianBlur(img, (1, 15), 0) # Gaussian filtering

gaussian filtering result