OpenCV конвертирует из bmp-изображения в double / CV_64FC1, не давая таких же значений, как в Matlab - PullRequest
0 голосов
/ 26 июня 2019

В 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

почему это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...