OpenCV检测并跟踪图像上最暗的线并覆盖网格

时间:2017-02-15 19:07:06

标签: python opencv scikit-image

我正在尝试在EKG上重新创建描记,然后将它们叠加到新网格上,但我仍然坚持如何最好地追踪实际的描记。在随后的图像中,有6个单独的描记我想在基本上带有网格的白色背景上重新创建。任何帮助将不胜感激。

我设法找到边缘并从jpg中裁剪出来,所以我剩下的就是这张图片:enter image description here

我试图用OpenCV的findContours或Hough Line转换来检测描​​记,但是在高斯模糊之后我的边缘发现让我:enter image description here ..这不是很有用。

霍夫线看起来像这样:enter image description here

有人能指出我正确的方向吗?提前谢谢。

编辑:

我做了局部直方图,然后是高斯模糊和另一个Canny边缘检测。局部直方图图像是:enter image description here

然后canny边缘检测是: enter image description here

1 个答案:

答案 0 :(得分:1)

您可以尝试使用Sobel和Laplacian探测器,如下所示

img = cv2.imread('experiment.png')
img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
img = cv2.GaussianBlur(img,(3,3),0)
laplacian = cv2.Laplacian(img,cv2.CV_64F)    
sobelx = cv2.Sobel(img,cv2.CV_64F,1,0,ksize=1) 

figure = plt.figure(figsize=(10,10))

sobel = figure.add_subplot(1,2,1)
sobel.imshow(sobelx,cmap='gray')
sobel.set_title('Sobel in x')
sobel.set_axis_off()

laplacianfig = figure.add_subplot(1,2,2)
laplacianfig.imshow(laplacian,cmap='gray')
laplacianfig.set_title('Laplacian')
laplacianfig.set_axis_off()

给你以下输出

enter image description here

如您所见,Sobel算子可用于检测线条。也许你可以绘制像素强度低于平均值的那些点。