首页 文章

Matlab图像边缘重新调整大小/细化

提问于
浏览
0

所以我目前正在研究这个项目,我完成了90%的工作,只需要一个特定问题的帮助 .

因此,设置是当您使用“墨西哥帽”阵列(如下所示)对RGB图像的三个颜色通道执行二维卷积(使用conv2)时,您将获得图像的边框 . 但是这些边框有双线效果,我想改变它,这样只有一条线形成边框 . 因此,项目要求在将颜色贴图更改为灰色后,“您需要将输入图像中的每个像素转换为黑色像素(值0)或白色像素(255),具体取决于输入中的像素图像小于或等于阈值 .

您将根据作为输入参数给出的阈值百分比(thrper)计算图像中每个颜色层的阈值 . 例如,主脚本文件使用值.75作为thrper调用此函数 . 这意味着该函数将具有全部范围的底部75%中的值的像素转换为黑色(新值= 0),并将具有全部范围的前25%中的值的像素转换为白色(新值= 255) . 例如,如果红色图层的值范围为-100到300,那么.75的thrper的红色阈值将为200.“

有人可以解释一下如何做到这一点?无论我做什么,我都尝试了一切,但我没有得到正确的输出(仍然得到双线效果) . 我真正需要知道的是如何计算正确的阈值 .

1 回答

  • 0

    听起来你正在做一些边缘(边界)检测 . 墨西哥帽阵列将在图像中找到边缘,但如果边缘倾斜(边缘稍宽),则边缘可能有2条线 . 但是,每个边缘只有一个零交叉 . 这在matlab中很容易实现 . 我们打电话给你的墨西哥帽过滤器MHfilt . 而不是使用0和255值来选择点使图像二进制 . 这意味着您将所有值都设置为0.75以下,其余值设置为1.调用该图像Im并将其提供给Matlab的边缘函数 .

    ImEdge = edge(Im,'zerocross',MHfilt);
    

    阅读更多关于边缘函数的信息here了解更多关于zerocrossings的信息here

    我希望这会对你有所帮助

相关问题