图像梯度角度计算

3

我实际上是在按照一篇论文的指示进行操作:

enter image description here

输入应该是一个二进制“边缘”图像。输出应该是一个新的图像,根据论文中的指示进行修改。我的理解是,需要对边缘图像进行梯度处理并进行修改,然后创建一个具有修改后梯度的新图像。因此,在MATLAB / OpenCV中是否有可能创建具有新梯度的相同图像?

参考文献: Li, Hongyu, and Lei Chen. "Removal of false positive in object detection with contour-based classifiers." ICIP. 2010.


1
为了完整起见,是否可以在这里引用该论文的参考文献? - EngrStudent
1个回答

8

我认为所展示的公式将梯度方向从弧度转换为像素强度,范围从0到255(对于许多图像格式来说是标准)。在Matlab中,如果您有图像处理工具箱,可以按如下方式获取图像梯度方向:

[Gmag, Gdir]=imgradient(YourImage);

现在,如手册中所述,Gdir包含角度,范围为[-180 180]。如果您希望它们在[0 255]范围内以遵循本文的要求,请按照公式操作:

GdirI=(Gdir+180)*(255/360);

您可以通过使用 imagesc(Gdir) 以其原始格式显示角度图。


1
我能从@chappjc那里得到一个徽章吗? :-) - Cape Code
1
只是我的投票。 :) 但是我会相信你,我已经给出了大量的这些,没有任何评论! - chappjc
@user3236180,你有一个变量GdirI,其中包含了我的代码中转换后的梯度,还有一个函数imwrite,可以将图像写入文件。现在请阅读文档并运用常识使用它们 :-) - Cape Code
对我来说,渐变只是图像的一个属性/特征。你现在说,我应该将修改后的渐变保存为带有修改后的渐变的旧图像的代表。但这怎么可能呢? - farahm
1
@user3236180,我不确定你想要什么。图像梯度本身就是一张图片。我需要更详细地研究这篇论文。 - Cape Code
显示剩余5条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接