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

news2025/1/12 13:40:21

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/1024
  print(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等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1827933.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

QT 5.14.2 应用程序打包

我们可以直接通过开发工具预览我们的程序。但是当要把开发好的程序给别人使用的时候,我们就需要把程序打包成可执行的exe,然后把这个exe文件和其他相关的文件一起发给别人,这样别人就可以使用了。 一、生成可独立运行的exe (一)、编译程序的…

01 基础入门 编写你的第一个 Go 语言程序

从这节课开始,我会带你走进 Go 语言的世界。我会用通俗易懂的语言,介绍 Go 语言的各个知识点,让你可以从零开始逐步学习,再深入它的世界。不管你以前是否接触过 Go 语言,都可以从这个专栏中受益。 现在,让…

TVBOX 最新版下载+视频源教程

下载链接 wx 搜索 Geek 前端 发送电视资源进行获取 操作教程

【论文复现|智能算法改进】基于多策略融合灰狼算法的移动机器人路径规划

目录 1.算法原理2.改进点3.结果展示4.参考文献5.代码获取 1.算法原理 【智能算法】灰狼算法(GWO)原理及实现 2.改进点 混沌反向学习策略 融合Logistic混沌映射和Tent混沌映射生成Logistic-Tent复合混沌映射: Z i 1 { ( r Z i ( 1 − Z i ) ( 4 −…

程序员的核心职业素养:专业、沟通与持续学习

✨作者主页: Mr.Zwq✔️个人简介:一个正在努力学技术的Python领域创作者,擅长爬虫,逆向,全栈方向,专注基础和实战分享,欢迎咨询! 您的点赞、关注、收藏、评论,是对我最大…

报错 Cannot read properties of undefined(reading‘addEventListener‘)如何解决

我在制作项目中遇到了一个问题,给大家分享一下,如下图: 问题:这是我给一个input输入框绑定的监听事件出现的报错 翻译:无法读取未定义的属性(读取 addEventListener ) 错误原因:js中操作的dom元素的函数方…

几个小创新模型,KAN组合网络(LSTM、GRU、Transformer)时间序列预测,python预测全家桶...

截止到本期,一共发了8篇关于机器学习预测全家桶Python代码的文章。参考往期文章如下: 1.终于来了!python机器学习预测全家桶 2.机器学习预测全家桶-Python,一次性搞定多/单特征输入,多/单步预测!最强模板&a…

GStreamer 源码编译,在 Clion 下搭建调试环境

前言 最近在学习 GStreamer,官方提供了一些教程,本人希望能够断点调试,以便学习代码逻辑。本文记录如何在 Clion 搭建 GStreamer 源码编译、调试环境 步骤 下载源码 git clone https://gitlab.freedesktop.org/gstreamer/gstreamer.gitCl…

Android中的Audio系统框架分析(一)

概述 Audio系统是Android 平台重要的组成部分,我们将从以下几个方面来讲解: 一Audio基础知识讲解 二、Android系统中Audio框架 Audio基础知识讲解 我们大家知道声音是由物体振动产生的声波。是通过介质(空气或固体、液体)传播并…

【JKI SMO】框架讲解(一)

JKI State Machine是一款易于使用且功能强大的状态机模板,可以作为界面或者仪器工作流程的基础框架,但是他不能处理复杂系统的多任务并发机制,因为他是只能处理单个进程。 随之,JKI推出了基于面向对象封装的SMO框架,是…

hugo 博客写作流程 (二)

写作工具 推荐两款软件,本人都使用过: typora和obsidian typora: https://github.com/woniu336/typora-007 新建文章 在博客目录找到shell/quickstart.sh双击打开即可 发布到Github 前提: 魔法上网在Github新建一个仓库 找到shell/quickstart.sh双击打开,选择7.SSH 管理…

Linux系统安装Ruby语言

Ruby是一种面向对象的脚本语言,由日本的计算机科学家松本行弘设计并开发,Ruby的设计哲学强调程序员的幸福感,致力于简化编程的复杂性,并提供一种既强大又易于使用的工具。其语法简洁优雅,易于阅读和书写,使…

今日早报 每日精选15条新闻简报 每天一分钟 知晓天下事 6月16日,星期日

每天一分钟,知晓天下事! 2024年6月16日 星期日 农历五月十一 1、 国家网信办:将涉网络暴力违法情形记入用户信用记录。 2、 卫健委:超三成3岁以下婴幼儿家庭有入托需求,托育服务关注度持续上升。 3、 大陆对台134项关…

单片机与DHT11温湿度检测设计

本次设计是采用STC89C54单片机加上低成本的温湿度模块DHT11构成的温湿度检测系统。设计主要由硬件与软件两部分设计构成。硬件方面包括单片机STC89C54、温湿度模块DHT11、显示模块LCD1602、电池电源、I2C存储器以及控制按键等5个部分。此系统完全基于单片机最小系统并进行一定的…

英伟达与斯坦福携手,打造未来全息XR眼镜:头带时代的终结

在XR(扩展现实)技术的演进过程中,一个显著的挑战在于如何平衡设备的便携性与视觉体验。传统的XR设备由于需要厚重的头带固定光学器件和显示器,不仅增加了体积,还为用户带来了社交上的不便。然而,随着英伟达与斯坦福大学戈登韦茨斯坦教授领导的研究团队的合作,这一难题似…

极致深耕,打造核心竞争壁垒——探寻蓝思科技穿越周期的密码

作者 | 曾响铃 文 | 响铃说 一家企业,如何才能在时代变幻的风云中不计较一时得失,长期稳健发展,穿越周期?本期主题就来探寻一家在湖南的国际化企业的发展密码。 穿越周期的企业,都在坚持一个驱动发展的“原点” 细…

【新课程】PICO VR 交互开发指南

从PICO开始,迈向XR跨平台开发 Unity XR Interaction Toolkit (简称XRI)是一套跨平台的 XR 交互开发工具包,随着版本的更新与完善,逐渐获得了开发者的青睐。各 XR 平台逐步推荐开发者采用 XRI 作为首选的交互开发工具为…

【FreeRTOS】ARM架构汇编实例

目录 ARM架构简明教程1. ARM架构电脑的组成1.2 RISC1.2 提出问题1.3 CPU内部寄存器1.4 汇编指令 2. C函数的反汇编 学习视频 【FreeRTOS入门与工程实践 --由浅入深带你学习FreeRTOS(FreeRTOS教程 基于STM32,以实际项目为导向)】 https://www.…

每日一练——用队列实现栈

225. 用队列实现栈 - 力扣&#xff08;LeetCode&#xff09; Queue.h #pragma once #include<stdlib.h> #include<assert.h> #include<stdbool.h>typedef int QDataType;typedef struct QNode {QDataType data;struct QNode* next; } QNode;typedef struct …

【RabbitMQ】异步消息及Rabbitmq安装

https://blog.csdn.net/weixin_73077810/article/details/133836287 https://www.bilibili.com/video/BV1mN4y1Z7t9/ 同步调用和异步调用 如果我们的业务需要实时得到服务提供方的响应&#xff0c;则应该选择同步通讯&#xff08;同步调用&#xff09;。 如果我们追求更高的效…