C++ 无法将Mat写入JPG或任何其他图像格式,OpenCV/C++;

C++ 无法将Mat写入JPG或任何其他图像格式,OpenCV/C++;,c++,image-processing,opencv,C++,Image Processing,Opencv,我无法使用imwrite函数将Mat写入图像文件。当我尝试将其写入BMP格式时,它工作正常,但当尝试写入其他格式时,它会给我一个未处理的异常 merge(yuv_channels,3,resImg); imshow("Result",resImg); imwrite("C:\\result.jpg",resImg); 上面的代码是我保存到jpg的尝试 merge(yuv_channels,3,resImg); im

我无法使用imwrite函数将Mat写入图像文件。当我尝试将其写入BMP格式时,它工作正常,但当尝试写入其他格式时,它会给我一个未处理的异常

        merge(yuv_channels,3,resImg);
        imshow("Result",resImg);
        imwrite("C:\\result.jpg",resImg);
上面的代码是我保存到jpg的尝试

        merge(yuv_channels,3,resImg);
        imshow("Result",resImg);
        imwrite("C:\\result.bmp",resImg);
不过,当我将扩展名更改为bmp时,它工作得很好

任何帮助都将不胜感激。
谢谢。

resImg的内容可能格式不正确。对于PNG、JPEG 2000和TIFF,只有16位无符号(CV_16U)。如果格式、深度或通道顺序不同,请在保存之前使用Mat::convertTo()和cvtColor()对其进行转换。请参见

resImg的内容可能格式不正确。对于PNG、JPEG 2000和TIFF,只有16位无符号(CV_16U)。如果格式、深度或通道顺序不同,请在保存之前使用Mat::convertTo()和cvtColor()对其进行转换。请参见

您确定您对[C:\]有写入权限吗。在Windows Vista和更高版本中,默认情况下您没有。是的,很糟糕。是的,我有书面许可[C:]。正如我前面所说,我能够成功地将其写入bmp,但不能写入其他图像格式。您确定您有[C:\]的写入权限吗。在Windows Vista和更高版本中,默认情况下您没有。是的,很糟糕。是的,我有书面许可[C:]。正如我之前所说,我能够成功地将其写入bmp,但不能写入其他图像格式。好的,谢谢。您是否有关于如何使用convertTo()的示例代码?或者更确切地说,我应该为rtype参数使用什么?C++:void Mat::convertTo(OutputArray m,int-rtype,double-alpha=1,double-beta=0)我自己从来没有使用过converTo。好的,谢谢。您是否有关于如何使用convertTo()的示例代码?或者更确切地说,我应该为rtype参数使用什么?C++:void Mat::convertTo(OutputArray m,int-rtype,double-alpha=1,double-beta=0)我自己从来没有使用过converTo。很抱歉