OpenCV 和读取带有 float 据的图像

标签 opencv

我使用 OpenCV 读取图像。然后我使用 Matlab 加载相同的图像。 然后我显示图像。对于 OpenCV 加载的图像,图像内部没有图片,只有灰色平面。对于 Matlab 加载的图像,它具有我想要的图像。 图像像素值是非常小的 float 据,如 0.0021。我用来加载图像的代码如下所示。

`Mat image(IMAGE_ROW, IMAGE_COL, CV_64FC3);
Mat  gray(IMAGE_ROW, IMAGE_COL, CV_64FC1);
image = imread(filespath, CV_LOAD_IMAGE_COLOR );// Read the file
cv::imshow("Image", image);
cvtColor( image, gray, CV_BGR2GRAY, 1);
cv::imshow("gray", gray);`

为什么我不能拥有与 Matlab 加载的相同的图像?

最佳答案

好吧,你不能像前面说的那样用 imwrite()/imread() 来做。

但您可以使用 FileStorage 保存/加载浮点 Mats,如下所示:

Mat fm = Mat::ones(3,3,CV_32FC3); // dummy data

FileStorage fs("my.yml", FileStorage::WRITE );
fs << "mat1" << fm;  //choose any key here, just be consistant with the one below

并读回:

Mat fm;
FileStorage fs("my.yml", FileStorage::READ );
fs["mat1"] >> fm;

关于OpenCV 和读取带有 float 据的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15289225/

相关文章:

python - mjpeg @ 0x27ee9e0 缓冲区小于最小大小 : How to create a video file with size less than the minimum buffer size?

c++ - OpenCV 访问 MAT 对象中的 RGB 值

python - 从Python的图片中获取所需的部分,然后找到该部分中的缺陷像素

Python OpenCV - 一个模板匹配函数

java - 将 CameraBridgeViewBase 作为服务运行以使用 OpenCV 在后台进行运动检测

python - 如何使用 OpenCV Pytesseract 从图像中从左到右提取单词?

python-3.x - 如何从某个 ROI 中提取所有像素值,然后将其存储为 CSV 文件,然后再次使用该 csv 文件取回该 ROI

python - OpenCV cv2.rectangle 输出二值图像

python - 如何将我的 python 脚本分成两个并让它们像一个一样运行?

python - 使用 OPENCV python 裁剪面部