如何获得彩色图像的特定边缘

Posted

技术标签:

【中文标题】如何获得彩色图像的特定边缘【英文标题】:How to get a specific edges of a coloured image 【发布时间】:2016-07-18 18:18:23 【问题描述】:

我想获得 2 条曲线,如 Desire result。我尝试使用边缘检测技术来获得这 2 条曲线,但输出不如预期。第一步,我将原始图像转换为灰度图像。第二步,我将灰度图像转换为二值图像,阈值由以下公式计算:

 threshold = floor((sum(sum("grayscale image here")))/(2 *high *width));

然后使用Sobel边缘检测算法找到边缘:

 im_edge = edge("binary image here", 'sobel');

我只需用黑色填充它即可去除左侧和右侧不需要的边缘。 我在Result 中得到了结果,但这并不符合我的预期。结果也是通过以下方式找到的嵌入边缘:

 im_edge = edge("grayscale image here", 'sobel');

谁能帮助我获得更好的结果

【问题讨论】:

【参考方案1】:

由于我没有 50 名声望来写评论,所以我会在这里写下我的 cmets 作为答案。

您遇到的问题是输入图像中没有可见的边缘。就我所见,图像非常平滑。如果你没有在图像上放两条线,我将无法分辨。

要获得更好的结果,您需要获得更多特征,例如对输入图像应用一些变换。例如,你可以尝试在输入图像的梯度或梯度的绝对值上找到边缘,看看是否能更好地找到那两条线(imgradient)。

【讨论】:

[期望结果][1]

以上是关于如何获得彩色图像的特定边缘的主要内容,如果未能解决你的问题,请参考以下文章

彩色图像的边缘检测 CannyAlgorithm

IOS OpenGL ES 图像扩展边缘彩色模糊 GPUImageRGBDilationFilter

图像增强基于matlab HSI+同态滤波彩色图像增强含Matlab源码 1515期

数字图像处理课程设计(基于matlab的Hough变换检测图像边缘提取,包含完整代码)

图像处理技术:数字图像分割 ------ 图像分割边界分割(边缘检测)区域分割

opencv 彩色图像分割(inrange)