gpt4 book ai didi

c++ - 从 Pixel Patch OpenCV 获取方向直方图

转载 作者:行者123 更新时间:2023-11-28 05:30:36 25 4
gpt4 key购买 nike

我尝试从 CV 的 phase() 方法的结果中获取方向直方图。我尝试获取每个像素的圆形方向并将其除以 10。例如,对于 5x5 像素补丁,它看起来像这样:

{ 1 36 20 3 14
5 16 11 6 9
7 12 34 22 0
34 5 9 21 4
5 21 28 30 1}

我的问题是,我真的不知道如何扫描 Patch 的每个像素,然后获取它的 OrientationValue 来计算直方图的值。

我获取 Orientation Mat 的代码如下所示:

 Mat patch = src(Rect(px,py,15,15));

Mat Sx;
Sobel(patch, Sx, CV_32F, 1, 0, 3);

Mat Sy;
Sobel(patch, Sy, CV_32F, 0, 1, 3);

Mat mag, ori;
magnitude(Sx, Sy, mag);
phase(Sx, Sy, ori, true);

int** hist;

在变量 hist 中,我想通过另一种方法添加值。我希望有人能理解我的想法并能帮助我。

我现在有一个计划,如何遍历给定的方向图像我使用文档中显示的循环 OpenCV Docu

for( i = 0; i < ori.rows; i++){
for( j = 0; j < ori.cols; j++){
cout << ori.at<uchar>(i,j) << endl;
}
}

但是像这样访问值不会给我方向值。有什么线索吗?

最佳答案

Ori来自类型 CV_32F不是 CV_8U , 所以试试 ori.at<float>(i,j) ro 访问方向值

关于c++ - 从 Pixel Patch OpenCV 获取方向直方图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39640711/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com