noregrets 发表于 2020-1-28 00:02

获取图像轮廓原理

如题,对一张彩色图像进行获取轮廓。
例如:一张一张手掌的图片,用matlab可以如下处理获取轮廓
1,先读入图片。
2,将彩色图像转换成灰度图像。
3,将灰度图像转换成二值图形并查找其二值图像边缘即可。
4,显示出来的即是轮廓边缘。
上述方法可以较快的获取简单图像轮廓,但对于复杂的图像或噪声较大的图像不方便处理。
此外,获取图像轮廓的目的是为了图像的数据,在此想请教各路大神,有什么好办法可以将图像转换成(x,y)坐标?
目前我的方法是用ginput取点,但此方法误差较大。

lelandyang 发表于 2020-1-28 00:16

你的灰度图本来就是一个矩阵,坐标我可以类似3这样获得啊!

Mr-墨云 发表于 2020-1-28 08:59

楼主可以试试高斯滤波之后,进行边缘检测。比如canny检测。{:301_1002:}

人云亦云yi 发表于 2020-1-28 10:00

以前做过类似的课题。二值图像滤波去噪点,size函数确定长宽,for循环找第一个轮廓点再用链码法(就是找相邻点)找到全部的点计入矩阵。不过这个方法复杂的图形也不适用{:301_992:}

noregrets 发表于 2020-1-28 19:55

人云亦云yi 发表于 2020-1-28 10:00
以前做过类似的课题。二值图像滤波去噪点,size函数确定长宽,for循环找第一个轮廓点再用链码法(就是找相 ...

多谢指点!

noregrets 发表于 2020-1-28 19:56

Mr-墨云 发表于 2020-1-28 08:59
楼主可以试试高斯滤波之后,进行边缘检测。比如canny检测。

多谢指点!

noregrets 发表于 2020-1-28 20:00

lelandyang 发表于 2020-1-28 00:16
你的灰度图本来就是一个矩阵,坐标我可以类似3这样获得啊!

是这样的,但是具体要获取的坐标,比如两点坐标的相对距离应该取多少,或者遇到了间断点如何处理,又或者毛笔字的轮廓例如“师”字,多个笔画应当如何处理,挺麻烦的。。。
页: [1]
查看完整版本: 获取图像轮廓原理