1

我无法使用函数 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 时,它工作正常。

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

4

1 回答 1

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

于 2013-01-04T04:35:44.730 回答