mahotas小波变换 Wavelet Transforms-无损压缩图片
发布日期:2021-06-29 14:44:29
浏览次数:3
分类:技术文章
本文共 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月25日 00时05分00秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
使用urdf_tutorial快速可视化urdf文件
2019-04-29
SQl 数据完整性(随堂博客)
2019-04-29
左连接、右连接、内连接
2019-04-29
MySQL DQL语句基础(随堂博客)
2019-04-29
MySQL基础练习
2019-04-29
利用MySQL进行数据复杂查询(1)
2019-04-29
利用MySQL进行数据复杂查询(2)
2019-04-29
MySQL 表与表之间的关系
2019-04-29
Python数据处理
2019-04-29
Java练习题(面向对象)
2019-04-29
Python 利用os和shutil复制系统文件
2019-04-29
Python 循环输出菱形字符串
2019-04-29
MySQL常见错误总结
2019-04-29
pymysql 的基础应用
2019-04-29
Html+Css实现 启橙装饰网 项目
2019-04-29
JavaScript 实现哥德巴赫猜想
2019-04-29
JavaScript DOM
2019-04-29
Python 管理程序改进——连接MYSQL
2019-04-29
Python 爬虫
2019-04-29
Python 爬虫-百度风云榜的电影top50
2019-04-29