1

我是opencv的新手,所以请帮我解决这个基本查询。我试图找到最大值。Mat 变量的值。我尝试使用 max_element 和 minMaxLoc,但最终遇到错误,因为函数一直说匹配的数据类型是错误的。我一遍又一遍地检查它,但没有成功。这是我的代码。ABS_DST 是 MAT 变量

    double *estimate,*min;
    CvPoint *minLoc,*maxLoc;


    Size s = abs_dst.size();
    int rows = s.height;
    int cols = s.width;
    double imagearray[rows][cols] = abs_dst.data();


    minMaxLoc(imagearray,min,estimate,minLoc,maxLoc);

我什至尝试直接给 Mat 变量 abs_dst 。但一直没有成功。有一个可选的输入掩码数组,我忽略了它,因为我不需要它。

4

2 回答 2

1

接下来做:

Point[] Mat_To_Point = Your_Mat_Variable.toArray();

接下来你可以对你的数组进行排序

于 2012-12-25T07:53:30.610 回答
0

我想我得到了答案。感谢您的努力。问题是 minMaxLoc 不采用 RGB 图像数组,因为它是 3 通道。我不得不将 ABS_DST 转换为灰度。

第二,

它不是

    CvPoint *minLoc,maxLoc;

它是

    Point *minLoc,*maxLoc;

我不需要将其转换为数组,因为转换为灰度将直接给我一个一维通道,对于 minMaxLoc 来说已经足够了。我为自己的错误道歉,并再次感谢您的努力。

于 2012-12-25T08:55:32.127 回答