图像经过Canny算子处理后如何获取边缘位置的像素坐标

Posted

技术标签:

【中文标题】图像经过Canny算子处理后如何获取边缘位置的像素坐标【英文标题】:How to get the pixel coordinates of the edge position after the image is processed by the Canny operator 【发布时间】:2019-05-14 03:28:42 【问题描述】:

一张图片经过Canny处理后,会得到更明显的边缘特征。如何找到身体部分最上、最下、最右的位置坐标?grabcut算法需要一个矩阵来框出前景部分,并获得坐标以确定矩形。

我需要分离图像并提取前景,但是grabcut算法需要手动输入矩形的坐标。矩形的坐标是这样的(x,y,w,x),x和y是前景左上角的坐标,w为宽,h为高

我尝试通过鼠标点击来获取坐标,但这太低效了。

I painted it on the edge

The two points pointed by the arrow need to be ignored because they are not part of the body (in most cases, only a small part of a picture after canny processing does not belong to the subject, or all are subjects)

【问题讨论】:

您的问题有太多可能的答案。您还应该发布代码以显示您尝试过的内容或您所做尝试的详细信息。 【参考方案1】:

一种可行的方法是:-

    制作边缘信息的副本。 添加很多很多很多的模糊 膨胀 X 很多次,例如30 图像阈值 多次签订合同,例如35 图像去斑/去噪 将结果用作原始模板。

可能会奏效。或者可以使用 blob 检测器https://www.learnopencv.com/blob-detection-using-opencv-python-c/

【讨论】:

以上是关于图像经过Canny算子处理后如何获取边缘位置的像素坐标的主要内容,如果未能解决你的问题,请参考以下文章

canny算法的实现

图像边缘检测:Canny算子、Prewitt算子和sobel算子

Matlab边缘检测问题

sobel边缘检测优缺点与canny算子的优缺点?

边缘检测算子中抗噪性能最好的是?

图像处理之Canny边缘检测