opencv - 为什么 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 对象,它包含 0 到 1 之间的数字。我得到了一个全是零的 Mat 对象。

最佳答案

是的。如果我评论这部分 image.convertTo(out, 5); normalize(image, image, 0.5, 0.5); 代码有效。但是数字的范围太高了。

关于opencv - 为什么 opencv 将灰度图像归一化为全为零的矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56238942/

相关文章:

c++ - OpenCV - 套接字接收到失真图像

python-3.x - Opencv - 将图像置于窗口中心

c++ - 使用Tracker-API从网络摄像头跟踪对象,但未定义error:cap

c++ - 程序在函数声明处崩溃,出现未处理的异常 : Stack overflow

c++ - undistort 与 undistortPoints 用于校准图像的特征匹配

python - OpenCV:将特定 BGR 值的所有像素设置为另一个 BGR 值

c++ - 在 openCV c++ 中获取帧的 Y 和 Cb 、 Cr 值

python - 在 mavericks 上为 python 安装 opencv

opencv - OpenCV GPU 代码的可移植性如何?

opencv - 断言: qasciikey.cpp 文件第 495 行中的 "false"