opencv - 为什么opencv将灰度图像归一化为一个充满零的矩阵?
问题描述
我正在尝试将图像提供给 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 对象,其中包含零到一之间的数字。我得到了一个满是零的 Mat 对象。
解决方案
是的。如果我评论这部分image.convertTo(out, 5);
normalize(image, image, 0.5, 0.5);
代码有效。但是数字的范围太高了。
推荐阅读
- angular - Angular 仅在导航到不同组件时检测路由更改
- java - 斯坦福 NLP POS 标记 X 西班牙语
- php - 如何更新访问令牌并在 YouTube 上上传视频?
- python-3.x - 尝试在python中减去变量时无法分配给函数调用语法错误
- regex - .htaccess 重定向如果 # 存在于 URI 中
- java - 递归语句不立即返回
- python - 在树目录中检测到文件(用于重命名)但未重命名
- python - python中进程和主任务之间的共享内存
- apache - 不能在 URL 中使用 http/https 强制 www
- javascript - 使用三个文本框进行自定义验证