首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenCV检测和跟踪图像上最暗的线条,并覆盖网格

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

Stack Overflow用户
提问于 2017-02-16 03:07:06
回答 1查看 1.3K关注 0票数 2

我试图在EKG上重新创建轨迹,然后将它们覆盖到一个新的网格上,但我被如何最好地跟踪实际轨迹所困。在接下来的图片中,有6个不同的轨迹,我想在一个带有网格的白色背景上重新创建。任何帮助都将不胜感激。

我设法找到了边缘,并从jpg中裁剪了它,所以我剩下的只有这张图片:

我试图用OpenCV的findContours或Hough Line变换来检测轨迹,但在高斯模糊后我的边缘发现给我留下了:

。。这不是很有帮助。

hough线如下所示:

谁能给我指个方向?提前谢谢。

编辑:

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

然后,精明的边缘检测是:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-16 05:17:05

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

代码语言:javascript
复制
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运算符来检测这些行。也许你可以画出那些像素强度低于平均值的点。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42258048

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档