python - 如何从图像中提取模糊的线条(木纹)
问题描述
这是我正在处理原始图像的扫描图像。这个想法是只将木纹提取为暗线,而其他一切都将成为图像中的白色背景。
我尝试使用 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_C
并ADAPTIVE_THRESH_GAUSSIAN_C
使其变得更糟。
更新:我现在有了一个想法。我想我需要编写代码来根据扩张的图像“画线”。仅使用现有库(如 OpenCV)不会完全满足我的需求。如果我错了,请告诉我。非常感谢。
解决方案
推荐阅读
- python - 调用计数不适用于异步功能
- firebase - 如何租用和使用自己的服务器来实现云功能?
- javascript - JavaScript currying:返回在当前函数之外定义的函数
- mysql - 使用 slashdb rest api 将 json 数据插入 MySQL 数据库
- sql - 如何从 Oracle 中的 XMLType 列中提取特定节点的所有子节点的值(通过输入参数提供)
- flutter - 颤振条件背景图像添加
- adaptive-cards - 无法获取数据以显示在 Adaptive Card FactSet
- excel - How to count the nth consecutive instance of a word in a list in excel?
- python-3.x - since i switched to python 3, my flask page stopped displaying ASCII characters correctly
- java - Groovy read json-file, add new key : value and write back (Jenkins)