如何在 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 中将图像读取为双倍?的主要内容,如果未能解决你的问题,请参考以下文章
如何在OpenCV中使用Adobe RGB色彩空间读取jpeg图像?