图像处理实验报告

实验一 图像处理的MATLAB基础

实验目的:熟悉数字图象处理的基本软件工具和操作

实验内容:Matlab应用复习,矩阵产生、操作;矩阵运算以及字符运算。

1.利用增量产生向量[0,2,4,6,8,10]。

2.利用magic(n)函数产生7维魔鬼矩阵A,并利用tril函数提取矩阵A的下三角矩阵作为矩阵B。

3.将矩阵A的第4行的值改为10,将矩阵A的第6到7列的值改为1,记作矩阵C;将矩阵A 的最后一行删除,记作矩阵D;返回矩阵D的行数W。

4.定义两个3*3的矩阵P、Q,计算两个矩阵的乘积M=P*Q,N=Q*P,并验证M是否等于N。

5.将自己的名字定义成字符name,如name=‘zhang ming’,将字符name转换为数值name1,再将数值name1转换为字符name2。

程序实现:

实验结果:

结果分析:

通过linspace函数生成指定向量[0 2 4 6 8 10]。利用magic(n)函数和tril函数得到A,B矩阵,CD矩阵也是通过简单的操作得到。运用rand(3)函数得到P和Q,验证结果不相等。通过一对单引号创建了字符name,再运用double函数后,转换成双精度浮点数数组,再利用char函数就转换成字符数组了。

实验二 图像显示与类型转换

实验目的:熟悉数字图像处理中读入图像与显示图像的方法,掌握彩色图像、灰度图像、二值图像以及索引图像的区别以及转换关系。

实验内容:对选取的示例图像进行读取、显示和转换等。

1.用图形表示连续调制波形 y=sin(t)sin(9t),自变量取101个点画出y2,画两个子图,在子图1上用红色的点显示y2,并将子图题目设置为“子图(1)”,在子图2上用蓝色点显示y2,并将子图题目设置为“子图(2)”。

示例:%

t1=(0:11)/11*pi; % 自变量取 12 个点

y1=sin(t1).*sin(9*t1); % 计算函数值

2.读入“lena”tif格式图像,分别按256灰度级、8灰度级显示图像;显示伪彩色图像;最后将tif格式图像保存为jpg图像;

3.读入flowers彩色图像,利用dither函数将其转化为索引图像,利用subplot函数在同一幅图中显示真彩图以及索引图;

4. 读入flowers彩色图像,利用dim2bw函数将其转化为二值图像,利用rgb2gray函数将其转换为灰度图像,利用subplot函数在同一幅图中显示二值图像以及灰度图像。

程序实现:

实验结果:

伪彩色图像:

转为jpg:

显示真彩图以及索引图:

显示二值图像以及灰度图像:

结果分析:

彩色图像使用R、G、B三个分量表示每个像素,每个通道取值范围在0到255之间,数据类型通常为8位无符号整型。相比之下,灰度图像每个像素只包含一个采样颜色,呈现从最暗黑色到最亮白色的灰度,数据类型同样为8位无符号整型。而二值图像中,每个像素仅有两种可能取值,0代表黑色,1代表白色,数据类型一般为1个二进制位。

另一方面,索引图像类似于字典查找,通过建立颜色索引来解决彩色图像占用大量空间的问题,特别适用于色彩构成相对简单的场景。彩色图像可以被转换为灰度图像,而灰度图像则可转换为二值图像。彩色图像还可以被转换为索引图像,而索引图像则可转换为灰度图像,灰度图像也可以转换为二值图像。然而,灰度图像不能直接转换为彩色图像。

实验三 图像时域变换

实验目的:熟悉彩色图像的几何变换。

实验内容:读入一副彩色图像,对图像以此进行横向拉伸2倍,顺时针旋转60度,纵向拉伸1.5倍,纵向错切0.5。在一幅图里展示出原图和变换后的图像。

程序实现:

定义单通道错切函数:

定义RGB彩色图像错切函数,原理是R、G、B每个通道都单独调用单通道错切函数:

实验结果:

横向拉伸2倍:

顺时针旋转60度:

纵向拉伸1.5倍:

纵向错切0.5:

结果分析:

对于图像横向拉伸2倍,该图的宽度增加两倍,变得更加扁平,图像可识别性降低。

对于图像顺时针旋转60°,该图只有角度发生变化,并不影响图片本身的可识别性。

对于图像纵向拉伸1.5倍,该图的高度增加1.5倍,变得更加细长,图像可识别性降低。

对于图像纵向错切0.5,该图在垂直方向上发生一半的错切变形,图像的宽度没有变化,图像可识别性降低。

实验四 图像的频域变换

实验目的:掌握图像傅里叶变换的基本性质,及滤波器的应用

实验内容:读入一副彩色图像,构建高通的低通滤波器,对图像进行高通和低通滤波,要求低通滤波器模板面积约为图像的25%,高通滤波器模板面积约为80%。

程序实现:

实验结果:

结果分析:

低通滤波后,高频分量减少,保留低频分量,图像呈现出模糊外观的效果,图像整体上看起来更加平滑和均匀,对比度下降,也失去了边缘以及细小的特征。

经过高通滤波后,低频分量减少,保留高频分量,图像的边缘更加突出和细致。

实验五 图像增强

实验目的:理解空域滤波的基本概念

实验内容:读入一副彩色图像,分别对图像进行3x3、5x5、7x7的均值滤波和中值滤波。

程序实现:

实验结果:

结果分析:

均值滤波简单来说就是对某个区域内的像素值取平均值代替原像素值,中值滤波和均值滤波不同的地方是,中值滤波是对图像的像素值进行排序,取中间的像素值赋给新的图像,使拥有不同灰度的点看起来更接近于它的邻近值。

如图中结果所示,中值滤波后的图像明显变得更平滑,但均值滤波的图像整体会更加模糊。

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

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

相关文章

SpringBoot+SpringCloud面试题整理附答案

什么是SpringBoot? 1、用来简化spring初始搭建和开发过程使用特定的方式进行配置(properties或者yml文件) 2、创建独立的spring引用程序main方法运行 3、嵌入Tomcat无需部署war包,直接打成jar包nohup java -jar – & 启动就好 4、简化了maven的配置 …

Linux之管道,system V的共享内存,消息队列和信号量

Linux之管道,systemV共享内存和信号量 一.进程间通信1.1进程间通信的目的1.2进程间通信的方式 二.管道2.1管道的概念2.2匿名管道2.3命名管道 三.system V3.1共享内存3.2消息队列3.3信号量 一.进程间通信 在我们之前有关Linux指令的学习时我们使用过“|”这个命令&a…

Figma入门-基本操作制作登录页

Figma入门-基本操作制作登录页 前言 在之前的工作中,大家的原型图都是使用 Axure 制作的,印象中 Figma 一直是个专业设计软件。 最近,很多产品朋友告诉我,很多原型图都开始用Figma制作了,并且很多组件都是内置的&am…

Django实现智能问答助手-数据库方式读取问题和答案

扩展 增加问答数据库,通过 Django Admin 添加问题和答案。实现更复杂的问答逻辑,比如使用自然语言处理(NLP)库。使用前端框架(如 Bootstrap)增强用户界面 1.注册模型到 Django Admin(admin.py…

SQL注入--文件读写注入--理论

什么是文件读写注入? MySQL中有 读取文件的函数:load_file() 写入文件的函数:Into outfile(能写入多行,按格式输出)和 into dumpfile(只能写入一行且没有输出格式) 利用这些函数在S…

《最小生成树算法详解:Kruskal的优雅实现》

前置知识和本篇介绍 前置知识: 数据结构-优先级队列, 数据结构-并查集。 Kruskal算法不需要建图, 因此不会建图的模板也没事。 本篇介绍一最小生成树的概念和Kruskal算法。 有关prim算法(另一种最小生成树的算法)&am…

云计算-华为HCIA-学习笔记

笔者今年7月底考取了华为云计算方向的HCIE认证,回顾从IA到IE的学习和项目实战,想整合和分享自己的学习历程,欢迎志同道合的朋友们一起讨论! 第二章:服务器基础 服务器是什么? 服务器本质上就是个性能超强的…

uniapp接入高德地图

下面代码兼容安卓APP和H5 高德地图官网:我的应用 | 高德控制台 ,绑定服务选择《Web端(JS API)》 /utils/map.js 需要设置你自己的key和安全密钥 export function myAMap() {return new Promise(function(resolve, reject) {if (typeof window.onLoadM…

C++:探索AVL树旋转的奥秘

文章目录 前言 AVL树为什么要旋转?一、插入一个值的大概过程1. 插入一个值的大致过程2. 平衡因子更新原则3. 旋转处理的目的 二、左单旋1. 左单旋旋转方式总处理图2. 左单旋具体会遇到的情况3. 左单旋代码总结 三、右单旋1. 右单旋旋转方式总处理图2. 右单旋具体会遇…

文小言1:

✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…

uni-app 界面TabBar中间大图标设置的两种方法

一、前言 最近写基于uni-app 写app项目的时候,底部导航栏 中间有一个固定的大图标,并且没有激活状态。这里记录下实现方案。效果如下(党组织这个图标): 方法一:midButton的使用 官方文档:ta…

CentOS7(Linux)详细安装教程(图文详解)

一、软件准备 本文CentOS7安装在VMware Workstation虚拟机软件,故安装前请自行安装该软件。VMware Workstation官网链接:VMware Workstation官网地址CentOS7下载地址:centos7镜像 如下是最常使用的版本(任选版本)centos-7.9.2009-isos-x86_64安装包下载_开源镜像站-阿里…

【实战】基于urllib和BeautifulSoup爬取jsp网站的数据

文章目录 前言目标网站分析目标网页爬取数据解析导出数据其他问题处理分页检索及多关键字搜索去重cookie问题工具封装经验总结前言 网络数据爬取大致分为两类: 静态爬取:该种方式针对那种架构比较老的网站,使用模版方式,通过浏览器F12只能找到静态页面,找不到返回json数…

玩转数字与运算:用C语言实现24点游戏的扑克牌魅力

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…

【MySQL】sql注入相关内容

【MySQL】sql注入相关内容 1. 为什么使用sql注入的时候,url传值的时候要使用–而不是– 使用–进行注释的时候需要在后面加一个空格才可以被认为是注释,url传值的过程中会将空格自动忽略,使用则可以在传输中保留为空格符号。(同…

shell脚本(完结)

声明:学习视频来自b站up主 泷羽sec,如涉及侵权马上删除文章 感谢泷羽sec 团队的教学 视频地址:shell编程(完结)_哔哩哔哩_bilibili 本文主要讲解不同shell脚本中的相互调用以及输入输出重定向操作。 一、不同脚本之间…

【bug】使用transformers训练二分类任务时,训练损失异常大

使用transformers训练二分类任务时,训练损失异常大 问题分析 问题 training_loss异常大,在二分类损失中,收敛在1~2附近,而eval_loss却正常(小于0.5) 分析 参考: Bug in gradient accumulation…

深入解析 EasyExcel 组件原理与应用

✨深入解析 EasyExcel 组件原理与应用✨ 官方:EasyExcel官方文档 - 基于Java的Excel处理工具 | Easy Excel 官网 在日常的 Java 开发工作中,处理 Excel 文件的导入导出是极为常见的需求。 今天,咱们就一起来深入了解一款非常实用的操作 Exce…

Gradio学习笔记记录

安装指令:pip install gradio方法介绍 Interface》用于构建一些简单的页面,可以直接用这个指令搞定 形式》接收三个参数分别为处理函数、输入、输出三部分,呈现一般左/上为输入,右或下为输出 fn:将用户界面 &#xff0…

养老院管理系统+小程序项目需求分析文档

智慧综合养老服务平台是以业务为牵引、场景为驱动,围绕“老人”业务域,持续沉淀和打磨形成适应不同养老业务发展需要的业务能力,推动业务模式升级,为养老服务提供数字化解决方案,并依托实体站点与养老机构实现线上线下…