简单的基于小波变换的图像压缩(Python)

2024-06-16 12:28

本文主要是介绍简单的基于小波变换的图像压缩(Python),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

2023 沃尔夫数学奖得主,给了杜克大学的Ingrid Daubechies(多贝西)教授

以色列沃尔夫基金会理事会成员 Michael Lin 教授在周二宣布: “Ingrid Daubechies is awarded the Wolf Prize for her work in the creation and development of wavelet theory and modern time frequency analysis。"

多贝西教授在小波理论和调和分析领域做出了重大贡献,她的研究彻底改变了图像和信号的数字处理方式,为数据压缩提供了标准和灵活的算法。多贝西的研究成果带来了多个领域技术的创新,包括医学成像、无线通信,和数字电影,比如:她早期的研究成果被用于图像压缩,JPEG 2000格式图片就是通过Daubechies小波压缩而成,它们也被用于将声音序列压缩成 MP3 文件;在更近的一些应用领域中,它们被用于增强和重建哈勃望远镜早期的图像,检测伪造的文件和指纹等等。

import numpy as np
import matplotlib.pyplot as plt
import os
import cv2
import pywt
import pywt.data
from skimage.data import camera
from skimage.util import random_noise
from skimage import img_as_ubyte
from skimage.metrics import peak_signal_noise_ratio as psnr
print(pywt.wavelist())
['bior1.1', 'bior1.3', 'bior1.5', 'bior2.2', 'bior2.4', 'bior2.6', 'bior2.8', 'bior3.1', 'bior3.3', 'bior3.5', 'bior3.7', 'bior3.9', 'bior4.4', 'bior5.5', 'bior6.8', 'cgau1', 'cgau2', 'cgau3', 'cgau4', 'cgau5', 'cgau6', 'cgau7', 'cgau8', 'cmor', 'coif1', 'coif2', 'coif3', 'coif4', 'coif5', 'coif6', 'coif7', 'coif8', 'coif9', 'coif10', 'coif11', 'coif12', 'coif13', 'coif14', 'coif15', 'coif16', 'coif17', 'db1', 'db2', 'db3', 'db4', 'db5', 'db6', 'db7', 'db8', 'db9', 'db10', 'db11', 'db12', 'db13', 'db14', 'db15', 'db16', 'db17', 'db18', 'db19', 'db20', 'db21', 'db22', 'db23', 'db24', 'db25', 'db26', 'db27', 'db28', 'db29', 'db30', 'db31', 'db32', 'db33', 'db34', 'db35', 'db36', 'db37', 'db38', 'dmey', 'fbsp', 'gaus1', 'gaus2', 'gaus3', 'gaus4', 'gaus5', 'gaus6', 'gaus7', 'gaus8', 'haar', 'mexh', 'morl', 'rbio1.1', 'rbio1.3', 'rbio1.5', 'rbio2.2', 'rbio2.4', 'rbio2.6', 'rbio2.8', 'rbio3.1', 'rbio3.3', 'rbio3.5', 'rbio3.7', 'rbio3.9', 'rbio4.4', 'rbio5.5', 'rbio6.8', 'shan', 'sym2', 'sym3', 'sym4', 'sym5', 'sym6', 'sym7', 'sym8', 'sym9', 'sym10', 'sym11', 'sym12', 'sym13', 'sym14', 'sym15', 'sym16', 'sym17', 'sym18', 'sym19', 'sym20']

path = {'compressed_haar': 'wavelet_compression/compressed_haar.jpg', 'compressed_db1': 'C:/romena/unige/wavelet_compression/compressed_db1.jpg', 'compressed_db2': 'C:/romena/unige/wavelet_compression/compressed_db2.jpg', 'compressed_bior1.3': 'C:/romena/unige/wavelet_compression/compressed_bior1.3.jpg', 'noisy': 'C:/romena/unige/wavelet_compression/noisy.jpeg'}
for i in path:size_img= os.path.getsize(path[i])size_img= size_img/1024print(i +'='+ str(size_img) + 'KB')size_img= 0

Wavelet: haar, Threshold: 5, PSNR: 4.72 dB, CR: 1.16, Size: 71.64 KB
Wavelet: haar, Threshold: 10, PSNR: 4.72 dB, CR: 1.16, Size: 71.64 KB
Wavelet: haar, Threshold: 20, PSNR: 4.72 dB, CR: 1.16, Size: 71.64 KB
Wavelet: db1, Threshold: 5, PSNR: 4.72 dB, CR: 1.16, Size: 71.64 KB
Wavelet: db1, Threshold: 10, PSNR: 4.72 dB, CR: 1.16, Size: 71.64 KB
Wavelet: db1, Threshold: 20, PSNR: 4.72 dB, CR: 1.16, Size: 71.64 KB
Wavelet: db2, Threshold: 5, PSNR: 4.72 dB, CR: 1.05, Size: 78.92 KB
Wavelet: db2, Threshold: 10, PSNR: 4.72 dB, CR: 1.05, Size: 78.92 KB
Wavelet: db2, Threshold: 20, PSNR: 4.72 dB, CR: 1.05, Size: 78.92 KB
Wavelet: coif2, Threshold: 5, PSNR: 4.72 dB, CR: 1.22, Size: 67.99 KB
Wavelet: coif2, Threshold: 10, PSNR: 4.72 dB, CR: 1.22, Size: 67.99 KB
Wavelet: coif2, Threshold: 20, PSNR: 4.72 dB, CR: 1.22, Size: 67.99 KB
Wavelet: custom, Threshold: 5, PSNR: 4.69 dB, CR: 1.31, Size: 63.16 KB
Wavelet: custom, Threshold: 10, PSNR: 4.69 dB, CR: 1.31, Size: 63.16 KB
Wavelet: custom, Threshold: 20, PSNR: 4.69 dB, CR: 1.31, Size: 63.16 KB

担任《Mechanical System and Signal Processing》《中国电机工程学报》《控制与决策》等期刊审稿专家,擅长领域:现代信号处理,机器学习,深度学习,数字孪生,时间序列分析,设备缺陷检测、设备异常检测、设备智能故障诊断与健康管理PHM等。

这篇关于简单的基于小波变换的图像压缩(Python)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1066455

相关文章

python: 多模块(.py)中全局变量的导入

文章目录 global关键字可变类型和不可变类型数据的内存地址单模块(单个py文件)的全局变量示例总结 多模块(多个py文件)的全局变量from x import x导入全局变量示例 import x导入全局变量示例 总结 global关键字 global 的作用范围是模块(.py)级别: 当你在一个模块(文件)中使用 global 声明变量时,这个变量只在该模块的全局命名空

csu 1446 Problem J Modified LCS (扩展欧几里得算法的简单应用)

这是一道扩展欧几里得算法的简单应用题,这题是在湖南多校训练赛中队友ac的一道题,在比赛之后请教了队友,然后自己把它a掉 这也是自己独自做扩展欧几里得算法的题目 题意:把题意转变下就变成了:求d1*x - d2*y = f2 - f1的解,很明显用exgcd来解 下面介绍一下exgcd的一些知识点:求ax + by = c的解 一、首先求ax + by = gcd(a,b)的解 这个

hdu2289(简单二分)

虽说是简单二分,但是我还是wa死了  题意:已知圆台的体积,求高度 首先要知道圆台体积怎么求:设上下底的半径分别为r1,r2,高为h,V = PI*(r1*r1+r1*r2+r2*r2)*h/3 然后以h进行二分 代码如下: #include<iostream>#include<algorithm>#include<cstring>#include<stack>#includ

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

usaco 1.3 Prime Cryptarithm(简单哈希表暴搜剪枝)

思路: 1. 用一个 hash[ ] 数组存放输入的数字,令 hash[ tmp ]=1 。 2. 一个自定义函数 check( ) ,检查各位是否为输入的数字。 3. 暴搜。第一行数从 100到999,第二行数从 10到99。 4. 剪枝。 代码: /*ID: who jayLANG: C++TASK: crypt1*/#include<stdio.h>bool h

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

uva 10387 Billiard(简单几何)

题意是一个球从矩形的中点出发,告诉你小球与矩形两条边的碰撞次数与小球回到原点的时间,求小球出发时的角度和小球的速度。 简单的几何问题,小球每与竖边碰撞一次,向右扩展一个相同的矩形;每与横边碰撞一次,向上扩展一个相同的矩形。 可以发现,扩展矩形的路径和在当前矩形中的每一段路径相同,当小球回到出发点时,一条直线的路径刚好经过最后一个扩展矩形的中心点。 最后扩展的路径和横边竖边恰好组成一个直

poj 1113 凸包+简单几何计算

题意: 给N个平面上的点,现在要在离点外L米处建城墙,使得城墙把所有点都包含进去且城墙的长度最短。 解析: 韬哥出的某次训练赛上A出的第一道计算几何,算是大水题吧。 用convexhull算法把凸包求出来,然后加加减减就A了。 计算见下图: 好久没玩画图了啊好开心。 代码: #include <iostream>#include <cstdio>#inclu

uva 10130 简单背包

题意: 背包和 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstring>#include <cmath>#include <stack>#include <vector>#include <queue>#include <map>

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学