imdecode 无法加载图像

聚苯乙烯

我有以下格式的一维图像数据

cv::Mat TestIm(400,400,CV_8UC1,cv::Scalar(0));
cv::putText(TestIm,"Hello !",cv::Point(100,200),CV_FONT_HERSHEY_COMPLEX,1,cv::Scalar(255));
QByteArray ImData = QByteArray((char *)TestIm.data,TestIm.total()); //this is 1D image data

现在假设我想从这些数据中获取原始图像,我使用以下代码片段:

 cv::Mat rawData  =  cv::Mat( 1, ImData.size(), CV_8UC1, ImData.data() );

 cv::Mat decodedImage  =  cv::imdecode( rawData , CV_LOAD_IMAGE_GRAYSCALE );
 if ( decodedImage.data == NULL )
 {
     qDebug()<<"Error in decompression !";
 }

正如 opencv 文档中所述,它会猜测图像尺寸并创建输出。但在这种情况下,它总是写

    "Error in decompression !"

这里有什么问题?我在不同的项目中多次使用此代码片段,但我不知道为什么它在这里失败!

如果我将第二部分更改为此假设我知道它的工作图像尺寸:

  cv::Mat decodedImage = cv::Mat(400,400,CV_8UC1,ImData.data());

但我不想要这个,因为在实际场景中我有一个一维图像数据数组(维度未知),我想获得完整的二维图像。

我也不喜欢使用第三方库,例如 libjpeg。我想要的只是使用 OpenCV 来解决它。

我有 OpenCV 3.0.0 和 Qt 5.7,我的操作系统是 Ubuntu 16.04。

聚苯乙烯

正如有人在评论中提到的,这些数据(代码中的 ImData 变量)没有被编码!它们只是一些解码后的像素值!

为了使 cv::imdecode 工作,您必须将初始数据编码为一些已知格式,例如“.jpg”,然后使用该函数获取原始数据。

cv::Mat DecodedImage = TestIm;
std::vector<uchar> OutputBuffer;
cv::imencode(".jpg",DecodedImage,OutputBuffer);
cv::Mat rawData  =  cv::Mat( 1, OutputBuffer.size(), CV_8UC3, OutputBuffer.data() );
cv::Mat Output  =  cv::imdecode( cv::Mat(rawData) , CV_LOAD_IMAGE_COLOR);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从多个JPEG编码图像创建MJEPG视频,而无需使用cv :: imdecode()

来自分类Dev

cv2.imdecode()从base64中的图像(通过Websocket收到的mimetype image / jpeg)返回None

来自分类Dev

无法从URL加载图像

来自分类Dev

pygame图像无法加载?

来自分类Dev

无法加载反应图像

来自分类Dev

无法让fancybox加载图像

来自分类Dev

无法加载图像 - Javafx

来自分类Dev

Webpack:图像无法加载

来自分类Dev

无法加载角度图像

来自分类Dev

无法使用OpenCV加载图像

来自分类Dev

无法在ImageViewAsync中加载图像

来自分类Dev

Jekyll CSS图像无法加载

来自分类Dev

Webpack无法加载png图像

来自分类Dev

无法加载简单的图像。Libgdx

来自分类Dev

毕加索android图像无法加载

来自分类Dev

无法在Pygame中加载图像

来自分类Dev

GIMP无法加载大图像

来自分类Dev

CImage :: Load无法加载图像

来自分类Dev

HTML我无法加载图像?

来自分类Dev

无法从KASlideShow pod加载图像

来自分类Dev

Appium Inspector无法加载图像

来自分类Dev

opencv python无法加载图像

来自分类Dev

FancyBox图像无法正确加载

来自分类Dev

图像无法加载但路径正确?

来自分类Dev

无法使用 imread() 加载图像

来自分类Dev

Cocoapods 无法从 Bundle 加载图像

来自分类Dev

无法使用 JFileDialog 加载图像

来自分类Dev

无法在QML图像中加载图像源

来自分类Dev

使用cv :: imdecode后,cv :: Mat外部数据未修改