我遵循(并修改)了这篇文章中评价最高的答案中的方法。
我的形象有点不同。我使用 HoughLinesP 并设法检测到大部分红线。
我想知道有没有办法从图像中删除检测到的线,而不会损坏其他黑色相交线?我只对黑线感兴趣。有没有更聪明的方法来隔离黑线而不会丢失太多像素和段?
我遵循(并修改)了这篇文章中评价最高的答案中的方法。
我的形象有点不同。我使用 HoughLinesP 并设法检测到大部分红线。
我想知道有没有办法从图像中删除检测到的线,而不会损坏其他黑色相交线?我只对黑线感兴趣。有没有更聪明的方法来隔离黑线而不会丢失太多像素和段?
如果你只想隔离黑线,一个简单的大津阈值和按位 - 应该这样做
import cv2
image = cv2.imread('3.jpg')
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
thresh = cv2.threshold(gray, 0, 255,cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU)[1]
result = cv2.bitwise_and(image,image,mask=thresh)
result[thresh==0] = (255,255,255)
cv2.imshow('thresh', thresh)
cv2.imshow('result', result)
cv2.waitKey()
这看起来像是信号分离/处理的问题。
我不知道这是否可行。但这只是一种预感。试一试,看看它是否有效。假设您的图像是测量条和心电图的卷积图像。所以,如果你在傅里叶域中处理这个,也许你可以解开这两种类型的信号。
scipy
具有fft
功能)。调用原始图像:f
和 fft-image: F
。 g
,fft-image G
:。 如果这不起作用,请在评论部分留言。