我正在尝试将图像输入LibTorch张量。为此,我首先在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对象,该对象包含介于0和1之间的数字。我有一个满零的Mat对象。
答案 0 :(得分:0)
是的。如果我对此部分image.convertTo(out, 5);
normalize(image, image, 0.5, 0.5);
进行注释,则代码可以正常工作。但是数字范围太大。