0
我想制作一个标识矩阵,然后从其对角元素中减去一些不同的浮点数。这是我做了什么:访问单位矩阵中的元素
cv::Mat R = cv::Mat::eye(trainingMat.rows,trainingMat.rows, CV_32F);
(trainingMat
是其他矩阵)这里是奇怪的事情。当我写:
std::cerr<<R.at<double>(0,0)<<std::endl;
我得到一个奇怪的数字(但它应该是1.0f的权利?)。当我这样做:
for(unsigned int i = 0; i < trainingMat.rows; i++){
std::cerr<<R.at<double>(i,i)<<std::endl;
}
再次我得到一些奇怪的数字。我究竟做错了什么?
请参阅http://stackoverflow.com/questions/15130162/how-to-access-pixel-values-of-cv-32f-cv-64f-mat试试'R.at(0,0)' –
francis
或者定义你的Mat类型'CV_64F' – Miki
“但它应该是1.0f” - 你明确地转换为'double',你为什么期望得到一个'float'(不同类型)? –