图像梯度角计算

标签 image matlab opencv image-processing gradient

我实际上是在按照论文的说明进行操作:

enter image description here

输入应该是二值“边缘”图像。输出应该是一个新图像,根据论文中的说明进行修改。我对指令的理解是,一个人获取边缘图像的梯度图像并对其进行修改,并使用修改后的梯度创建一个新图像。因此,是否有可能在 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/

相关文章:

Java OpenCV 无法正确检测轮廓

c++ - 使用 libjpeg 读取 .jpeg 文件时出错

image - 在 Flutter 中将图像缩放到屏幕之外

matlab - 图像局部区域的对比度拉伸(stretch)

reactjs - 在其他计算机上使用 native 模块执行 Electron 应用程序时出现 JS 错误

python - 使用 K 均值聚类 OpenCV 进行交通标志分割

python - OpenCV:阈值操作,结果异常

image - HSI 和 YCbCr 之间的差异与肤色相关

c++ - 在 C++ 中创建一个执行 Matlab 操作 [z;z] 的函数,其中 z 是矩阵或 vector

matlab - 符号值如何存储在 Matlab 中