【数字图像处理】实验一 图像基本运算

news2025/2/3 18:46:55

图像基本运算

一、实验内容:

1 熟悉和掌握利用Matlab工具进行数字图像的读、写、显示等数字图像处理基本步骤。

2 熟练掌握各种图像点运算的基本原理及方法。

3 能够从深刻理解点运算,并能够思考拓展到一定的应用领域。

二、实验原理:

1、单幅图像像素灰度的点运算;

2、两幅图像的代数与逻辑运算;

3、单幅图像缩放与旋转的几何变换。

三、实验方法及程序

1、点运算

(1)选择一幅图像 lena.jpg,设置输入/输出变换的灰度级范围,a=0.3, b=0.6,c=0.1,d=0.9。 

(2)设置非线性扩展函数的参数 c=2。

(3)采用灰度倒置变换函数 s  255 r 进行图像变换。

(4)设置二值化图像的阈值,分别为 level=0.4,level=0.7 参考程序如下:​​​​​​​

2、图像代数、逻辑运

(1)选取两幅大小一样的灰度图像 i_lena.jpg 和 rice.png,将两幅图像 进行加法运算。程序如下所示:

(2)选取一幅混合图像,如(1)相加得到的图像 i_lena.jpg,将混合图 像与背景图像做减法运算,程序如下所示

3、图像几何变换

(1)选取一幅大小为256256像素的图像,如 i_lena.jpg.分别将图比例放大 1.5 倍,比例缩小 0.7 倍,非比例放大到420384像素,非比例缩小到150180像素。 程序如下所示:

(2)读取一幅图片,如 i_lena.jpg,设置图像旋转的角度分别为 0 45 和 0 90 ,采用 图形旋转函数 imrotate 对图像进行旋转。程序如下所示

五、实验结果分析

1、点运算

2、图像代数、逻辑运

(1)

(2)

3、图像几何变换

(1)

(2)

六、思考题

1.线性扩展与对数非线性扩展各有什么特点?对数非线性交换能否使图像的低灰度级压缩,高灰度级扩展或者低灰度级扩展,高灰度级压缩?

答:

线性扩展:简单地通过线性变换扩展图像的灰度级,适用于整体对比度较低的图像。

对数非线性扩展:强调低灰度级的细节,对高灰度级进行压缩,适用于增强图像细节的同时压缩高亮区域,使图像更具视觉效果。

对数非线性扩展可以实现:

  1. 低灰度级压缩,使低灰度级区域更加黑暗。
  2. 高灰度级扩展,增强图像的高亮部分。

2.任意两幅图片相叠加得到一幅混合图像,将此混合图像减去其中的一幅原图 像能得到另一幅原图像吗?通过以上实验小结各种图像代数运算的应用特点。

答:

图像相叠加得到混合图像,减去其中一幅原图像可以得到另一幅原图像。

图像代数运算(加法、减法)可用于图像融合、增强和还原。

3.由非比例缩放得到的图片能够恢复到原图片吗?为什么?

答:

由非比例缩放得到的图片通常不能完全恢复到原图片。

非比例缩放引入了信息的丢失,导致不能准确还原原始图像。

4.图像的旋转会导致图像的失真吗?若有,有什么办法可以解决这个问题?

答:

旋转可能导致图像失真,尤其是在角度较大时。

使用插值算法(如双线性插值)可以在旋转过程中减少失真,但在大角度旋转时,还是可能引入一定程度的失真。

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

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

相关文章

【爬虫软件】孔夫子二手书采集

项目演示 孔网爬取图书信息 目录结构 [ |-- api-ms-win-core-synch-l1-2-0.dll, |-- api-ms-win-core-sysinfo-l1-1-0.dll, |-- api-ms-win-core-timezone-l1-1-0.dll, |-- api-ms-win-core-util-l1-1-0.dll, |-- api-ms-win-crt-conio-l1-1-0.dll, |-- api…

【matlab】绘制横状双组渐变柱状图

【matlab】绘制横状双组渐变柱状图

Frida07 - dexdump核心源码分析

项目地址 https://github.com/hluwa/frida-dexdump 代码解析 项目中的核心函数是 searchDex: function searchDex(deepSearch) {var result [];Process.enumerateRanges(r--).forEach(function (range) {try {....} catch (e) {}});return result; }里面用了一…

OpenCV-Python(19):Canny边缘检测

目录 学习目标 Canny 边缘检测原理 1.噪声抑制(噪声去除) 2.梯度计算 3.非极大值抑制 4.双阈值检测(滞后阈值) 5.边缘连接 Canny 边缘检测步骤 Canny 边缘检测的OpenCV实现 不同阈值的边缘检测效果 学习目标 了解Canny边缘检测的概念学习掌握函数cv2.Canny()的用法 …

Django(二)

1.django框架 1.1 安装 pip install django3.21.2 命令行 创建项目 cd 指定目录 django-admin startproject 项目名mysite ├── manage.py [项目的管理工具] └── mysite├── __init__.py├── settings.py 【配置文件,只有一部分…

电子科大软件测试~第三次作业

第三次作业 第一题 采用JUnit软件测试框架进行测试程序编程,实现对下面java程序进行单元测试,找出其中缺陷。然后修改缺陷,直到通过单元测试,给出测试程序脚本和运行结果界面。 public class getMax {public int get_max(int x…

Redis实现日榜|直播间榜单|排行榜|Redis实现日榜01

前言 直播间贡献榜是一种常见的直播平台功能,用于展示观众在直播过程中的贡献情况。它可以根据观众的互动行为和贡献值进行排名,并实时更新,以鼓励观众积极参与直播活动。 在直播间贡献榜中,每个观众都有一个对应的贡献值&#…

这样使用云渲染又快又省钱

我们都知道使用云渲染是要钱的,而且渲染的时间越久,需要的渲染费越多,哪么如何又快又省钱的拿到效果图呢?用炫云的渲染质量,保准让你使用云渲染渲染效果图又快又省钱。 我们使用炫云的时候,根据自己的需求…

输入框获取焦点

Entry Component struct Test {build() {Row() {Column({ space: 5 }) {//Text("自定义样式").customStyles(20,Color.Yellow).backgroundColor("#36D").padding(10).borderRadius(30)TextInput({placeholder: "获取焦点"}).borderColor(Color.Y…

LLM微调(四)| 微调Llama 2实现Text-to-SQL,并使用LlamaIndex在数据库上进行推理

Llama 2是开源LLM发展的一个巨大里程碑。最大模型及其经过微调的变体位居Hugging Face Open LLM排行榜(https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard)前列。多个基准测试表明,就性能而言,它正在接近GPT-3.5…

图灵日记之java奇妙历险记--数据类型与变量运算符

目录 数据类型与变量字面常量数据类型变量语法格式整型变量浮点型变量字符型变量希尔型变量类型转换自动类型转换(隐式)强制类型转换(显式) 类型提升不同数据类型的运算小于4字节数据类型的运算 字符串类型 运算符算术运算符关系运算符逻辑运算符逻辑与&&逻辑或||逻辑非…

案例125:基于微信小程序的个人健康数据管理系统的设计与实现

文末获取源码 开发语言:Java 框架:SSM JDK版本:JDK1.8 数据库:mysql 5.7 开发软件:eclipse/myeclipse/idea Maven包:Maven3.5.4 小程序框架:uniapp 小程序开发软件:HBuilder X 小程序…

【论文阅读】FreeU: Free Lunch in Diffusion U-Net

FreeU: 无需训练直接提升扩散模型生成效果。 paper:https://arxiv.org/abs/2309.11497 code:GitHub - ChenyangSi/FreeU: FreeU: Free Lunch in Diffusion U-Net 1. 介绍 贡献: •研究并揭示了U-Net架构在扩散模型中去噪的潜力&#xff0…

目标检测入门体验,技术选型,加载数据集、构建机器学习模型、训练并评估

Hi, I’m Shendi 1、目标检测入门体验,技术选型,加载数据集、构建机器学习模型、训练并评估 在最近有了个物体识别的需求,于是开始学习 在一番比较与询问后,最终选择 TensorFlow。 对于编程语言,我比较偏向Java或nod…

vue关闭当前路由页面并跳转到其父页面

1.dom中添加关闭或取消按钮 <el-button type"primary" class"blueLinearbg cancelBtn" click"cancel" >取 消</el-button>2.cancel方法中 /*取消或关闭*/cancel(){this.$store.dispatch("tagsView/delView", this.$route)…

state的保留与重置

让组件状态保留的情况&#xff1a; 让组件状态重置的3种情况&#xff1a;

[NISACTF 2022]easyssrf

[NISACTF 2022]easyssrf wp ssrf 的题目&#xff0c;提示了会使用 curl 连接输入的网站并返回响应包。 测试连接百度 直接在输入框中写 www.baidu.com 是无法连接的&#xff0c;需要在前面加入 http 或者 https &#xff0c;因为 curl 的使用方式就是&#xff1a; curl htt…

从0到1部署gitlab自动打包部署项目

本文重点在于配置ci/cd打包 使用的是docker desktop 第一步安装docker desktop Docker简介 Docker 就像一个盒子&#xff0c;里面可以装很多物件&#xff0c;如果需要某些物件&#xff0c;可以直接将该盒子拿走&#xff0c;而不需要从该盒子中一件一件的取。Docker中文社区、…

Ubuntu 常用命令之 man 命令用法介绍

&#x1f4d1;Linux/Ubuntu 常用命令归类整理 man命令在Ubuntu系统中是一个非常重要的命令&#xff0c;它用于查看系统的手册页。手册页是Linux和Unix系统中的一种在线文档&#xff0c;用于描述系统中的命令、函数、配置文件等的详细信息。 man命令的基本格式是 man [选项] …

光伏企业如何能够提高光伏电站的建设效率?

随着全球对可再生能源需求的日益增长&#xff0c;光伏行业的发展势头强劲。然而&#xff0c;光伏电站建设过程中往往存在效率低下的问题&#xff0c;这不仅影响了电站的运营成本&#xff0c;也制约了整个行业的发展速度。因此&#xff0c;如何提高光伏电站的建设效率&#xff0…