我实际上是在按照论文的说明进行操作:
输入应该是二值“边缘”图像。输出应该是一个新图像,根据论文中的说明进行修改。我对指令的理解是,一个人获取边缘图像的梯度图像并对其进行修改,并使用修改后的梯度创建一个新图像。因此,是否有可能在 MATLAB/OpenCV 中创建具有新梯度的相同图像?
论文引用: 李鸿宇、陈磊。 “使用基于轮廓的分类器消除对象检测中的误报。” ICIP。 2010.
最佳答案
我想,显示的公式将梯度方向形式的弧度转换为 0 到 255 范围内的像素强度(许多图像格式的标准)。在matlab中,如果有Image Processing Toolbox,可以得到图像的梯度方向,如下:
[Gmag, Gdir]=imgradient(YourImage);
现在,如 the manual 中所述, Gdir
包含 [-180 180] 范围内的角度(以度为单位)。如果您希望它们在 [0 255] 范围内以遵循本文中的内容,请按照公式所示进行操作:
GdirI=(Gdir+180)*(255/360);
您还可以使用 imagesc(Gdir)
以原始格式显示角度图。
关于图像梯度角计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22106748/