我尝试可视化由 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/