Matlab图片的处理

news/2024/11/18 12:11:51/文章来源:https://www.cnblogs.com/dlmuwxw/p/18292704

上一章我们介绍了奇异值分解的理论原理,这一章我们使用奇异值分解来压缩图片

目录
  • 一、RGB模式
    • (1) 灰色图片与彩色图片
  • 二、matlab进行图片压缩
    • 1.参数分析
    • 2.读取图像文件并进行转换
    • 3.进行奇异值分解
    • 4.将压缩后的图片保存
    • 5.实例演示
      • (1)原图:
      • (2)进行处理
      • (3)处理后————保留60%信息

一、RGB模式

RGB色彩就是常说的三原色,R代表Red(红色),G代表Green(绿色),B代表Blue(蓝色)。自然界中肉眼所能看到的任何色彩都可以由这三种色彩混合叠加而成。
计算机定义颜色时R、G、B三种成分的取值范围是0-255
R、G、B均为255时就合成了白光,R、G、B均为0时就形成了黑色。

(1) 灰色图片与彩色图片

如果一张图片的R、G、B三原色完全相同,那么这张图片我们就称为灰色图片;否则我们称这张图片为彩色图片
如图所示,第一行数字代表着图片的像素点,而第二行数字则是代表着RGB的取值,此处我们鼠标落在了纯白区域,因此三者取值为255

二、matlab进行图片压缩

function []= photo_compress(photo_address, save_address, ratio, greycompress)
此函数是我们所定义的一个进行图片压缩的函数,第一个参数为图片的名称;第二个为压缩后保存图片的名称;第三个为保留信息的比例;第四个为一个0-1变量,1代表将图片转化为灰色,0则不进行此操作
下面我们来介绍一个这个函数

1.参数分析

nargin表示用户输入的参数个数,如果用户没有输入第四个参数,则默认不进行此操作,但mtalab仍然需要将其初始化为0

if nargin == 3  % 判断用户输入的参数,如果只输入了前三个参数,则默认最后的参数greycompress=0greycompress = 0;end

2.读取图像文件并进行转换

imread函数可以读取图片文件,读取后保存下来的变量是uint8类型的,但是要进行奇异值分解需要将其转换成double类型储存在img变量中
之后就是利用rgb2gray函数将彩色图片转化成灰色图片的过程

3.进行奇异值分解

我们将分类讨论图片的情况,如果是彩色图片,保存的图片变量是三维的(RGB的数值均不同),而灰色图片是一维的。
分情况来进行奇异值分解,最后用cat函数将R、G、B三个维度连接起来保存到compress_img变量

4.将压缩后的图片保存

imwrite(uint8(compress_img), save_address)
imwrite可以将压缩后的图片变量保存为图片文件,第一个参数为图片变量(需要转化成“uint8”类型),第二个参数为保存文件的名称

5.实例演示

(1)原图:

(2)进行处理

(3)处理后————保留60%信息

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI绘图实践-用人工智能生图助力618大促

现在各种AI大模型大行其道,前有GhatGPT颠覆了我们对对话型AI的原有印象,后有Sora文生视频,让我们看到了利用AI进行创意创作的无限可能性。如今各大公司和团队都争相提出自己的大模型,各种网页端和软件应用也极大地降低了我们使用AI作为生产力的门槛。 我这次就为大家带来使…

托寄物智能识别——大模型在京东快递物流场景中的应用与落地

一、前言 在现代物流场景中,包裹信息的准确性和处理效率至关重要。当前,京东快递在邮寄场景中面临着日益丰富的寄递品类和多样化的个性化需求。本文将深入探讨托寄物智能识别——大模型在京东快递物流场景中的应用与落地,分析其产生背景、应用效果及未来发展方向。 二、背景…

Golang 切片作为函数参数传递的陷阱与解答

作者:林冠宏 / 指尖下的幽灵。转载者,请: 务必标明出处。 GitHub : https://github.com/af913337456/ 出版的书籍:《1.0-区块链DApp开发实战》 《2.0-区块链DApp开发:基于公链》例子切片作为函数参数传递的是值 用来误导切片作为函数参数传递的是引用 函数内切片 append 引…

暑假读论文总结

7.8SAM-G 待填7.9MAE(Masked Autoencoders Are Scalable Vision Learners) 来源:CVPR 2022 在视觉领域应用 auto encoder 的比较早的工作了,是自监督学习。 主要内容是在原图中选择若干个 patch 进行遮挡(patch 通常选的很多,~75%),通过 encoder - decoder 进行复原。e…

设计模式学习(二)工厂模式——抽象工厂模式+注册表

介绍抽象工厂模式初版代码的改进方案目录前言使用简单工厂改进使用注册表改进参考文章 前言 在上一篇文章中我们提到了抽象工厂模式初版代码的一些缺点:①客户端违反开闭原则②提供方违反开闭原则。本文将针对这两点进行讨论 使用简单工厂改进 对于缺点①,我们可以使用简单工…

服务器怎么连接?服务器远程连接图文教程

服务器操作系统可以实现对计算机硬件与软件的直接控制和管理协调,任何计算机的运行离不开操作系统,服务器也一样,服务器操作系统主要分为四大流派:Windows Server、Netware、Unix和Linux 今天飞飞就给你们分享下常用的Windows、Linux、Unix三种系统的远程连接图文操作方法服…

Candy Party (Hard Version)

这个就看官方题解就好了,写的很清楚 考试的时候把easy version给做出来了,但是对于hard version确实没有想到可以转换成位运算 所以以后看到\(2^x\),不妨想一下是不是位运算,这里将最后的式子一列就知道是位运算了

【Azure App Service】访问App Service应用报错 SSL: WRONG_VERSION_NUMBER

REST API: write EPROTO 8936192:error:100000f7:SSL routines:OPENSSL_internal:WRONG_VERSION_NUMBER:..\..\third_party\boringssl\src\ssl\tls_record.cc:231. Python: urllib3.exceptions.SSLError: [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1000)问题…

题解 - 修剪草坪

单调队列优化 dp题目(in 洛谷) 或 题目(in hszxoj) 题目大意给定 \(n\) 个非负整数 \(a_1 \cdots a_n\)。现在你可以选择其中若干个数,但不能有超过 \(k\) 个连续的数字被选择。 求选出的数字的和最大。思路简析 一个比较好的思路是反向思考:选择某些间隔小于等于 \(k\) …

函数进阶应用2

进阶函数的具体应用场景查询并标记停产商品要求:停产商品标记为红颜色具体操作 选中B列——开始选项卡——条件规则——新建规则,选择“使用公式……格式的单元格”——在公式输入框中输入“=VLOOKUP(B2,选择区域,返回列,精确匹配)="停产”——格式,选填充色为红色—…

04 安装SSH

因为每一个老嵌入式都喜欢使用他的老windows进行开发,因此我决定使用SSH来开发rust,这样也不用在虚拟机里边再装一个vscode. 参考博客如何在windows下使用vscode连接linux虚拟机进行代码开发_windows vscode编辑linux文件-CSDN博客 Windows环境使用VSCode 调试Linux环境C/C++代…