首页 > 解决方案 > 如何从图像中提取模糊的线条(木纹)

问题描述

这是我正在处理原始图像的扫描图像。这个想法是只将木纹提取为暗线,而其他一切都将成为图像中的白色背景。

我尝试使用 OpenCV,但结果远非理想。如何提取这些行?

原来的

在这里,我标记了图像以说明我正在寻找的线条:

结果

以下是我尝试的步骤:

1 - 将图像变成灰度:

grayImage = cv2.cvtColor(crop_image, cv2.COLOR_BGR2GRAY)

灰度

2 - 将灰度图像变成黑白:

 (thresh, blackAndWhiteImage) = cv2.threshold(grayImage, 160, 255, cv2.THRESH_BINARY)

黑与白

3 - 黑白图像看起来不太好。所以我进行了扩张:

 kernel = np.ones((5,5),np.uint8)
 dilation = cv2.dilate(blackAndWhiteImage,kernel,iterations = 1)

扩张的

我也尝试了不同的阈值,但它们并没有让事情变得更好。使用ADAPTIVE_THRESH_MEAN_CADAPTIVE_THRESH_GAUSSIAN_C使其变得更糟。

更新:我现在有了一个想法。我想我需要编写代码来根据扩张的图像“画线”。仅使用现有库(如 OpenCV)不会完全满足我的需求。如果我错了,请告诉我。非常感谢。

标签: pythonopencvimage-processingfeature-extraction

解决方案


推荐阅读