图片存进Mat类中,然后调用图像矩阵元素

    Mat img = imread("test3.png",0);//灰度图
    imwrite("origin.png",img);
    if(img.empty())
    {
        cout << "图像加载失败!"
            << endl;
        //system("pause");
        return
            -1;
    };

    std::cout<<(float)img.at<uchar>(1,1)<< std::endl; 

其中,  (float)img.at<char>(m,n)   即为调用到的矩阵元素。

注意:C++中图像矩阵元素下标从(0,0)开始;matlab中是从(1,1)开始。

测试可知:

(float)img.at<uchar>(0,0)可以

(float)img.at<char>(0,0)可以

(float)img.at<unsigned char>(0,0)可以,

但<uchar>换为int/double/float均不行。

原文地址:https://www.cnblogs.com/wxl845235800/p/9093994.html