当心OpenCV中的保存图像陷阱!

科技   2024-09-12 20:19   江苏  

点击上方蓝字关注我们


微信公众号:OpenCV学堂

关注获取更多计算机视觉与深度学习知识

引言

前几天有个人在OpenCV实验大师群里给我反馈说,同样的流程跟参数,保存为vm文件以后,重新保存JPG图像以后,在SDK中运行以后,发现SDK运行的结果跟OpenCV实验大师里面的数据不一致,我自己核对了一下,发现的确是这样,图示如下:


原因分析与修正

当OpenCV实验大师工具软件加载图像以后,再次用OpenCV中的imwrite函数选择保存JPG图像的时候会导致有损压缩,前后两次图像会有细微的差异,正是这个原因导致了再次保存的图像跟第一次加载的图像有了细微改变,所以导致了最终同一个流程下,看上去完全一致的图像得到了不同的分析结果。

这个时候我们只需要在imwrite保存图像时候选择bmp格式,实现完全的无损保存,就可以避免这个问题的出现与发生。下图测试结果是我保存图像为bmp格式以后,通过SDK再次运行得到的结果,图示如下:

结论

当需要验证错误或者复现一些数据跟验证一致性的是时候,同一张图像最好的保存格式是BMP格式,JPG格式可能会导致复现失败或者一致性检查失败。

加入官方QQ群,一起讨论,学习更多OpenCV实验大师操作与应用集成技能,提升OpenCV开发效率,获取更多OpenCV开发技术。下载链接
https://appetjpz4tj8166.h5.xiaoeknow.com/p/course/ecourse/course_2XtK2sEi7HNUwt2WscP6tFwxpIb


OpenCV4系统化学习


深度学习系统化学习

推荐阅读

OpenCV4.8+YOLOv8对象检测C++推理演示

ZXING+OpenCV打造开源条码检测应用

攻略 | 学习深度学习只需要三个月的好方法

三行代码实现 TensorRT8.6 C++ 深度学习模型部署

实战 | YOLOv8+OpenCV 实现DM码定位检测与解析

对象检测边界框损失 – 从IOU到ProbIOU

初学者必看 | 学习深度学习的五个误区


OpenCV学堂
三本书《Java数字图像处理-编程技巧与应用实践》、《OpenCV Android开发实战》、《OpenCV4应用开发-入门、进阶与工程化实践》作者。OpenCV实验大师平台 软件作者,OpenCV开发专家、OpenCV研习社创始人。
 最新文章