mahotas小波变换 Wavelet Transforms-无损压缩图片
发布日期:2021-06-29 14:44:29
浏览次数:4
分类:技术文章
本文共 2904 字,大约阅读时间需要 9 分钟。
1.1.用途:# 无损压缩图片-小波变换,在保留大部分信号的前提下使大多数值均为0(否则较小)
2.实例:实例1:无损压缩图片import numpy as np ,mahotas as mhfrom matplotlib import pyplot as pltimage = mh.demos.load('luispedro', as_grey=True) #加载图片-原始图像中没有零image = image[:256,:256]print("1.图像中像素为0所占比例: {0}".format(np.mean(image==0)))#0.0# plt.imshow(image,cmap='gray')# plt.show()# 1.基线压缩方法:每隔一个像素保存一次,仅保存高位img1 = image[::2,::2].copy()img1 /= 8;img1 = img1.astype(np.uint8) #丢弃低位print("2.图像中像素为0所占比例: {0}".format(np.mean(img1==0)))#0.000732421875plt.imshow(img1,cmap='gray') #图像上有小方块plt.show()#2.1.使用D8小波变换以获得变换后的图像img2:丢弃高阶位img2 = mh.daubechies(image,'D8')img2 /= 8 ;img2 = img2.astype(np.int8) #丢弃低位print("3.图像中像素为0所占比例: {0}".format(np.mean(img2==0)))#0.5917205810546875plt.imshow(img2,cmap='gray')plt.show()#2.2.小波反变换 显示图片质量:在图片质量没有太多损失的情况下是一个相当不错的降低img3 = mh.idaubechies(img2, 'D8')plt.imshow(img3,cmap='gray')plt.show()# 3.继续压缩图片到77%(其余值都较小)非常好地压缩为无损图像,且可在传输后重建完整图像threshold = mh.thresholding.soft_threshold(img2, 12)print("4.图像中像素为0所占比例: {0}".format(np.mean(threshold==0)))#0.7700042724609375img4 = mh.idaubechies(threshold, 'D8')#小波反变换plt.imshow(img4,cmap='gray')plt.show()
实例2:边界Borders import numpy as np ,mahotas as mhfrom matplotlib import pyplot as pltimage = mh.demos.load('luispedro', as_grey=True) #加载图片-原始图像中没有零image = image[:256,:256]plt.title('image');plt.imshow(image,cmap='gray');plt.show()# 可在边框处看到一些工件。可用wavelet_center,wavelet_decenter处理边框:img1 = mh.wavelet_center(image)plt.title('image1');plt.imshow(img1,cmap='gray');plt.show()img2 = mh.daubechies(img1, 'D8')img3 = mh.idaubechies(img1, 'D8')plt.title('image3');plt.imshow(img3,cmap='gray');plt.show()img4 = mh.wavelet_decenter(img3, img1.shape)# 现在,img4等于(不舍入)img1没有任何边框效果plt.title('image4');plt.imshow(img4,cmap='gray');plt.show()
3.函数:mh.haar(image, preserve_energy=True, inline=False)# 哈尔变换Haar transform 参数:image:二维数组-输入图像 reserve_energy:bool,可选-是否标准化结果以便保留能量energy is preserved(默认值)inline : bool, optional是否将结果写入输入图像。默认返回新图像。整数图像始终会转换为浮点并进行复制mh.ihaar(image, preserve_energy=True, inline=False)# 逆哈尔变换 参数: image:二维数组-输入图像。如果它是整数图像,则将其转换为浮点数(双精度)reserve_energy:bool,可选-是否标准化结果以便保留能量(默认值)inline : bool, optional是否将结果写入输入图像。默认返回新图像。整数图像始终会转换为浮点并进行复制 返回值:image:ndarray mh.daubechies(image,code,inline = False )# Daubechies小波变换-如图像大小是2的幂最有效 参数: image:ndarray二维图像 code : str “ D2”,“ D4”,...“ D20”之一 inline : bool, optional是否将结果写入输入图像。默认返回新图像。整数图像始终会转换为浮点并进行复制mh.idaubechies(image, code, inline=False) # Daubechies小波逆变换 参数: image:ndarray二维图像 code : str“ D2”,“ D4”,...“ D20”之一 inline : bool, optional是否将结果写入输入图像。默认返回新图像。整数图像始终会转换为浮点并进行复制
转载地址:https://chunyou.blog.csdn.net/article/details/106313857 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月19日 17时39分17秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Windows+Ubuntu双系统卸载 || 重新安装Ubuntu
2019-04-29
C++ Makefile / Cmake 构建工程 & GDB调试
2019-04-29
Ubuntu常用命令
2019-04-29
使用Opencv3运行Opencv2开发的程序遇到的bug
2019-04-29
Pytorch1.1版本pytorch模型转onnx的bug
2019-04-29
面试笔试易错知识点Java篇八
2019-04-29
逆波兰计算器
2019-04-29
简单数组对数器的实现
2019-04-29
百度搜索の黑话大全—那些不为人知的搜索引擎语法
2019-04-29
前任3:由圣经故事通天塔想到公司部门间沟通协作
2019-04-29
持续集成(持续构建)服务器luntbuild的一些配置细节
2019-04-29
数据库Scheme的版本控制——DB Migrations
2019-04-29
弹性事务框架ETF4J——面向Java微服务的交易最终一致性解决方案
2019-04-29
实时音视频聊天中超低延迟架构的思考与技术实践
2019-04-29
首次公开!华为技术团队共同携手编写的《HarmonyOS系统学习笔记》V2.0版本
2019-04-29
Android Binder 原理
2019-04-29
java是最值得学习的编程语言吗?
2019-04-29
在上海乐字节学习前端渐进式框架【Vue】
2019-04-29