我无法使用函数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时,它工作正常。
非常感谢任何帮助。 谢谢。
答案 0 :(得分:1)
resImg的内容可能格式不正确。在PNG,JPEG 2000和TIFF的情况下,只有16位无符号(CV_16U)。如果格式,深度或通道顺序不同,请使用Mat :: convertTo()和cvtColor()在保存之前进行转换。见http://docs.opencv.org/modules/highgui/doc/reading_and_writing_images_and_video.html?highlight=imwrite#imwrite