【问题标题】:OpenCV detect and trace darkest lines on image and overlay a gridOpenCV 检测和跟踪图像上最暗的线条并覆盖网格
【发布时间】:2017-07-04 15:00:53
【问题描述】:

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

我已经设法找到边缘并从 jpg 中裁剪出来,所以我只剩下这张图片:

我正在尝试使用 OpenCV 的 findContours 或霍夫线变换来检测跟踪,但我在高斯模糊后的边缘发现给我留下了:.. 这不是很有帮助。

霍夫线如下所示:

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

编辑:

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

然后精明的边缘检测是:

【问题讨论】:

  • 最佳精明边缘检测?
  • 在此之前尝试预处理您的图像
  • 我发现那些边缘有canny,结果就是这样,是否有某些设置需要调整?
  • 找到图像的中值并根据它设置阈值...
  • 我刚刚尝试了局部直方图均衡。之后执行上述操作

标签: python opencv scikit-image


【解决方案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()

给你以下输出

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-14
    • 1970-01-01
    • 2020-06-03
    • 1970-01-01
    • 1970-01-01
    • 2015-06-20
    • 1970-01-01
    • 2011-10-24
    相关资源
    最近更新 更多