OpenCV - arm/android 手机上的 JPEG 压缩不会产生正确的图像

Posted

技术标签:

【中文标题】OpenCV - arm/android 手机上的 JPEG 压缩不会产生正确的图像【英文标题】:OpenCV - JPEG compression on arm/android phone doesn't result the right image 【发布时间】:2014-06-10 22:30:41 【问题描述】:

我编写了一个使用 OpenCV 来处理图像的 android 应用程序。我正在使用以下代码将 cv::Mat 对象写入 JPG 文件。

cv::imwrite("<sd card path>/img.jpg", <some mat object>);

我确实看到图像保存在我的 SD 卡上,但是颜色不正确。它在整个图像上都有一些蓝色。

有人知道我在这里缺少什么吗?

【问题讨论】:

可能色彩空间改成了RGB,OpenCV默认是BGR。只需使用cvtColor 再试一次 【参考方案1】:

哈里斯的上述评论解决了这个问题。我修改了代码以更改颜色空间,如下所示:

cv::Mat mat;

// Initialize mat
cv::cvtColor(mat, mat, CV_BGR2RGB);
cv::imwrite("<sd card path>/img.jpg", mat);

我可以看到用这个保存的正确图像。

【讨论】:

以上是关于OpenCV - arm/android 手机上的 JPEG 压缩不会产生正确的图像的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV调用手机摄像头与人脸检测

实现手机直播推送屏幕推送及录像功能RTMP推流组件之EasyRTMP-Android使用H265编码流程

C ++ Opencv重新缩放边界矩形

是否可以在 ARM(Android/Linux)上更改字节顺序?

python+opencv 电脑调用手机的摄像头

编译出arm Android环境下的C++可执行文件