android - 使用 HOGDescriptor(适用于 Android 的 OpenCV)对图像进行梯度和角度可视化

标签 android windows opencv

我尝试可视化由 OpenCV Lib for Android 的 HOGDescriptor 计算的图像的渐变和角度。一开始我有一个 3 channel 图像 Mat() 和 8 位无符号整数 (CV_8UC3)。计算的结果是梯度的 MAT() (CV_32FC2) 和角度的 Mat() (CV_8UC2)。我如何可视化此结果?什么代表值(value)观?为什么角度 Mat() 有 2 个 channel ?渐变 Mat() 的 2 个 channel 是渐变的 x 和 y 分量吗?我找不到 computeGradiant-Method 的文档。

最佳答案

HOG 描述符是定向梯度的直方图:它是一个直方图,其中每个 bin 代表相应方向的梯度投票。 为了计算此描述符,您应该首先将 3 channel 彩色图像转换为灰度图像

cv::cvtColor(CV_BGR2GRAY);

“ComputeGradient”方法的结果是例如两个图像(与原始图像大小相同):x 分量和 y 分量。 然后,您应该能够为每个像素计算梯度大小和方向。

mag=sqrt(x*x+y*y)
alpha=atan(y/x)

然后你可以填充你的直方图。请注意,HOG 描述符是由 block 和单元格计算的。参见 this了解更多详情。

关于android - 使用 HOGDescriptor(适用于 Android 的 OpenCV)对图像进行梯度和角度可视化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10945992/

相关文章:

android - 如何显示1分钟的进度条?

windows - 在 Windows 7 上使用 XAudio2 构建

c# - 在 Windows 中检测耳机

c++ - 计算图像的y导数

android - 如何知道我的 GCM 应用云中注册的设备(设备列表)

android - 使用相同的 XML 布局以不同方式显示的两个图像

opencv - 从 Lucas-Kanade 光流中移除异常值

python - 在OpenCv python中调整图像大小,用颜色填充空间

php - 如何将图像从安卓相机上传到网络服务器(不在应用程序中)

python - 在 Windows 中的 Python 文件上混合使用 read() 和 write()