扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
在机器视觉与深度学习的项目中,通常有许多的图像需要保存。
出于对图像内存占用,和图像数据信息完整性的综合评估,要选择一种合适的格式来保存图像。
***********************************************
* 读取一张BMP图像,分别另存为PNG和JPG格式
read_image (Image, 'A.bmp')
write_image (Image, 'png', 0,'B.png')
write_image (Image, 'jpg', 0,'C.jpg')
***********************************************
从相同图像不通格式占用内存大小情况分析
以某图为例
bmp 997kb
png 428kb
jpg 121kb
所以占用内存:bmp>png>jpg
***********************************************
* 根据先验知识
* 我们已经了解到png格式是无损压缩,jpg格式是有损压缩
* 所以理论上bmp格式的数据内容和png是一致的,但是jpg损失了一些信息,与bmp内容不一致
* 因此做出以下实验测试和验证
***********************************************
read_image (ImageBMP, 'A.bmp')
read_image (ImagePNG, 'B.png')
read_image (ImageJPG, 'C.jpg')
***********************************************
* 为了验证bmp转成各种格式图像的内容是否发生了变化做出以下实验:
* |bmp-png|*100
* |bmp-jpg|*100
* |png-jpg|*100
* 乘以系数100是为了放大差值,方便观察差异性
* 因为是求取所有对应坐标数据内容的绝对值,所以|A-B|=|B-A|,不再赘述
abs_diff_image (ImageBMP, ImagePNG, BmpSubPngAbsDiff, 100)
write_image (BmpSubPngAbsDiff, 'png', 0, 'BmpSubPngAbsDiff.png')
abs_diff_image (ImageBMP, ImageJPG, BmpSubJPGAbsDiff, 100)
write_image (BmpSubJPGAbsDiff, 'png', 0, 'BmpSubJPGAbsDiff.png')
abs_diff_image (ImagePNG, ImageJPG, PNGSubJpgAbsDiff, 100)
write_image (PNGSubJpgAbsDiff, 'png', 0, 'PNGSubJpgAbsDiff.png')
BmpSubPngAbsDiff
BmpSubJPGAbsDiff
PNGSubJpgAbsDiff
从结果可知:
bmp=png
,并且bmp!=jpg
可以推导出png!=jpg
,其实第三步只是为了验证png!=jpg
,事实也确实如此。综合以上的实验结果,从内存占用和数据损失两个方面综合分析和取舍PNG
内存占用比BMP
小,JPG
占用内存比PNG
更小,
但是PNG
内容没有损失,JPG
损失了部分图像的内容信息。
所以,我们需要选择PNG
格式来保存我们的图像数据集!
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流