Почему opencv нормализует изображение в градациях серого в матрицу, полную нулей? - PullRequest
1 голос
/ 21 мая 2019

Я пытаюсь передать изображение в LibTorch Tensor.Для этого я сначала делаю некоторую предварительную обработку в opencv.Важной частью является нормализация.Для этого я использую метод cv :: normalize (), но напечатанный объект Mat полон нулей.

Я нашел код и попробовал его, но это не помогло.Вот оно:

Mat m = imread("image.jpg",0);
Mat_<float> fm;

m.convertTo(fm,CV_32F);

Код, который я на самом деле использую, выглядит следующим образом:

Mat image_to_tensor(string filename, int flag) {

    Mat image = imread(filename, flag);
    Mat_<float> out;
    float hight = image.rows;
    float width = image.cols;
    Size size(128,128);
    imshow("Not Resized", image);

    resize(image, image, size);
    image.convertTo(out, 5);
    normalize(image, image, 0.5, 0.5);
    imshow("Resized IMG", image);
    cout << image;
    waitKey(0);

    cout << "left image to tensor" << endl;
    return image;
}

Я ожидал объект Mat, который содержит числа от нуля до единицы.Я получил объект Мат, полный нулей.

1 Ответ

0 голосов
/ 21 мая 2019

Да.Если я прокомментирую эту часть image.convertTo(out, 5); normalize(image, image, 0.5, 0.5); код работает.Но диапазон чисел слишком велик.

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