如何在 OpenCV 中将图像读取为双倍?

Posted

技术标签:

【中文标题】如何在 OpenCV 中将图像读取为双倍?【英文标题】:How to read an image as double in OpenCV? 【发布时间】:2014-02-19 05:39:54 【问题描述】:

我想用opencv实现如下所示的类似功能。

image=double(imread('mask.jpg'));

我已经实现了类似的东西。如何将其转换为双精度。

cv::Mat image= imread(arg[1]);

其中arg[1] 包含我的图像,该图像将作为双精度存储在Mat 图像中。如何实现。

【问题讨论】:

使用这个? image.convertTo(image,CV_64FC1); 它没有将图像读取为双重。图像被读取为 uint8 然后转换为双精度,这可以按照 azer89 的注释来完成。 是否可以直接将图像读取为双精度。如果我执行上述步骤,我需要创建两个 Mat 对象吗? @user2885090 我认为现在有办法做到这一点。加载图像只有 5 个选项 CV_LOAD_IMAGE_UNCHANGED、CV_LOAD_IMAGE_GRAYSCALE、CV_LOAD_IMAGE_COLOR、CV_LOAD_IMAGE_ANYDEPTH、CV_LOAD_IMAGE_ANYCOLOR。 【参考方案1】:

您正在寻找Mat::convertTo()

对于灰度图像:

image.convertTo(image, CV_64FC1);

对于彩色图像:

image.convertTo(image, CV_64FC3); // or CV_64FC4 for 4-channel image

【讨论】:

以上是关于如何在 OpenCV 中将图像读取为双倍?的主要内容,如果未能解决你的问题,请参考以下文章

如何在本机反应中将图像读取为二进制/ blob

如何在OpenCV中使用Adobe RGB色彩空间读取jpeg图像?

opencv python将图像读取为RGB

如何使用 OpenCV 以您想要的分辨率从 DVR 读取图像?

如何opencv读取摄像头并保存每一帧图像?

如何opencv读取摄像头并保存每一帧图像