我想制作一个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
我再次得到一些奇怪的数字。我做错了什么?
答案 0 :(得分:1)
我曾多次遇到这种情况,结果证明是错误的垫子类型的问题。 以下是您可能会记住的一些配对。
CV_8U <-> uchar
CV_32S <-> int
CV_32F <-> float
CV_64F <-> double
TYPE float占用4个字节,double占用内存中的8个字节。 您尝试使用 double 来获取一个元素,但实际上,您使用两个元素,并使用这些两个代表一个。所以你得到了意想不到的数字。