python - 有没有好的去除线条的方法?
问题描述
我想消除你可以看到的 16 位图像中的灰线。
最终目标是使用背景图像(第一张图像)删除对象图像(第二张图像)中的线条。
我认为它需要 FFT,但我不知道 FFT 是如何应用的。也会有其他方式。
请帮我。
解决方案
使用 Python/OpenCV 的一种简单方法是使用小的垂直矩形内核多次使用形态学关闭。
输入:
import cv2
import numpy as np
img = cv2.imread('lines.png')
# do morphology multiple times to remove horizontal lines
kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (1,5))
result = cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel, iterations = 9)
# write result to disk
cv2.imwrite("lines_removed.png", result)
# display it
cv2.imshow("result", result)
cv2.waitKey(0)
但是,它会稍微修改各处的图像
推荐阅读
- python - 在哪里可以找到 PyQt5 驱动程序?
- wear-os - WearOS - 分发 - 如何准备我的应用程序以选择加入 wearOS?
- plotly-python - 同一 x 轴上的多个图:make_subplots - 跟踪错误
- rest - REST API 资源是否应该根据查询参数进行授权?
- excel - 结果未计入excel vba电子表格
- tomcat - Jython Tomcat IntitialContext 无法查找上下文 JDBC JNDI 连接
- jq - 使用方法 | 添加和保留具有不同值的重复键,而是将它们添加到数组中
- javascript - 如何运行多个 Promise [键入针对 es5 的脚本]
- api - 如何通过 API Woocommerce 订阅更新获取?
- mongodb - 如何在满足给定条件的mongodb中创建帐户集合