从bmp图像到double / CV_64FC1的OpenCV convertTo不提供与Matlab中相同的值

时间:2019-06-26 18:04:48

标签: c++ opencv

在OpenCV C ++中,我尝试过

cv::Mat mat=cv::imread("input.bmp");
mat.convertTo(mat, CV_64FC1, 1.0/255.0);
for (int i=0; i<2; i++) {
    std::cout<<"\n";
    for (int j=0; j<2; j++) {
        std::cout<<mat.at<double>(i,j)<< " ";
    }   
}

这些值与我在Matlab中获得的值匹配,但是如果我尝试:

for (int i=314; i<316; i++) {
    std::cout<<"\n";
    for (int j=350; j<352; j++) {
        std::cout<<mat.at<double>(i,j)<< " ";
    }   
}

我得到的值是

.165 .189 
.274 .208

在Matlab中,如果可以的话

im=imread("input.bmp")
im2double(im(315:316,351:352))

我明白了

.294 .310
.317 .294

这是为什么?

0 个答案:

没有答案