C++ OpenCV HuMoments产生错误的结果

C++ OpenCV HuMoments产生错误的结果,c++,opencv,C++,Opencv,这段代码: int main() { Mat input_img = imread("abcdef.png", CV_8UC1); // Image of size 1000*800 Moments moment = moments(input_img, false); double humm[7]; HuMoments(moment, humm); for (int i = 0; i<7; i++) cout << hu

这段代码:

int main() {
    Mat input_img = imread("abcdef.png", CV_8UC1); // Image of size 1000*800
    Moments moment = moments(input_img, false);
    double humm[7];
    HuMoments(moment, humm);
    for (int i = 0; i<7; i++)
        cout << humm[i] << endl;
}
这是错误的。胡的不变矩不是那么小。我只记得在某个地方读过,第一刻通常>100,第二刻>60。。。
我错过什么了吗?

你可以试试看这篇文章。虽然问题不同,但它也计算了Hu动量。它可能有助于检查API中的
Mat::data
中的
NULL
:“函数imread从指定文件加载图像并返回它。如果图像无法读取(由于缺少文件、权限不正确、格式不受支持或无效),则函数返回空矩阵(Mat::data==NULL)。目前,支持以下文件格式:…“@Mario图像不为空,因为我可以
imshow
it。
0.000789284
1.24093e-07
2.37587e-15
1.48852e-15
-3.19408e-31
4.09704e-20
-2.78098e-30