3

我遵循(并修改)了这篇文章中评价最高的答案中的方法。

我的形象有点不同。我使用 HoughLinesP 并设法检测到大部分红线。 在此处输入图像描述

我想知道有没有办法从图像中删除检测到的线,而不会损坏其他黑色相交线?我只对黑线感兴趣。有没有更聪明的方法来隔离黑线而不会丢失太多像素和段?

4

2 回答 2

2

如果你只想隔离黑线,一个简单的大津阈值和按位 - 应该这样做

在此处输入图像描述

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()
于 2019-09-19T22:09:09.707 回答
0

这看起来像是信号分离/处理的问题。

我不知道这是否可行。但这只是一种预感。试一试,看看它是否有效。假设您的图像是测量条和心电图的卷积图像。所以,如果你在傅里叶域中处理这个,也许你可以解开这两种类型的信号。

  1. 对图像进行傅里叶变换 (FFT)。(scipy具有fft功能)。调用原始图像:f和 fft-image: F
  2. 只拍摄测量条的图像(但没有测量 ECG 的图案)并评估该测量条的 FFT。调用这个图像:g,fft-image G:。
  3. 计算 (F/G) 的逆 FFT 并查看是否消除了背景效应。

如果这不起作用,请在评论部分留言。

于 2019-09-19T05:36:26.933 回答