访问单位矩阵中的元素

时间:2016-05-18 19:15:47

标签: opencv

我想制作一个Identity矩阵,然后从对角线元素中减去一些不同的浮点数。这就是我所做的:

trainingMat

std::cerr<<R.at<double>(0,0)<<std::endl; 是另一个矩阵)这是奇怪的事情。我写的时候:

for(unsigned int i = 0; i < trainingMat.rows; i++){
            std::cerr<<R.at<double>(i,i)<<std::endl;
        }

我得到一个奇怪的数字(但它应该是1.0f对吗?)。当我这样做时:

comment_params

我再次得到一些奇怪的数字。我做错了什么?

1 个答案:

答案 0 :(得分:1)

我曾多次遇到这种情况,结果证明是错误的垫子类型的问题。 以下是您可能会记住的一些配对。

CV_8U <-> uchar
CV_32S <-> int
CV_32F <-> float
CV_64F <-> double

TYPE float占用4个字节,double占用内存中的8个字节。 您尝试使用 double 来获取一个元素,但实际上,您使用两个元素,并使用这些两个代表一个。所以你得到了意想不到的数字。