我有这种具有粗糙水平线的图像,我想将其删除或至少使这些线不真正可见。
使用高斯模糊等平滑技术,我无法获得令人满意的结果,因为线条仍然可见,而且只会降低图像的分辨率。
cv::GaussianBlur(image, result, cv::Size(5, 5), 3);
还有其他更适合我的问题的方法吗?谢谢
最佳答案
正如 @gameon67 建议的那样,您可以使用 1x15 的内核大小来增加 y 方向的模糊并忽略 x 方向的模糊。然而,我觉得对于这种情况,平均滤波比高斯滤波更适合。您可以在官方documentation中阅读更多关于它们的信息。 .
img = cv2.blur(img,(1, 15)) # average filtering
img = cv2.GaussianBlur(img, (1, 15), 0) # Gaussian filtering
关于c++ - 如何使用 OpenCV 细化具有粗糙水平线的图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56249667/