《数字图像处理》实验报告一

一、实验任务与要求

1、用 matlab 编写空间域点处理操作处理给定的几幅图像,要求:

  • 使用 imread 读取当前工作目录下的图像
  • 设计点处理操作并用代码实现处理
  • 用 imnshow 显示处理后的图像
  • 用 imwrite 保存处理后的图像

 

2、提交内容:m文件 + 实验报告。实验报告需包括以下内容:

  • 各图像存在什么质量问题?
  • 需要如何操作才可以改善图像质量?
  • 根据上述的认识选择了何种点处理操作?
  • 点处理操作中有哪些参数需要重点关注,这些参数的作用是什么?

 

二、实验报告

图像1:

1、图像存在的质量问题及操作?

图片看起来白蒙蒙的,可以增强一下对比度。

 

2、选择的点处理操作?

通过幂律变换增强对比度:s=cr^γ

 

3、实现代码:

f=imread('C:\Users\Lenovo\Desktop\aerialview-washedout.tif'); %读取图像
f=im2double(f); %将图像转换为双精度
f1=power(f,2.0); %gamma=2.0
f2=power(f,3.0); %gamma=3.0
f3=power(f,4.0); %gamma=4.0
subplot(2,2,1);
imshow(f);title('原图'); %显示原图
subplot(2,2,2); 
imshow(f1);title('gamma=2.0'); %显示处理后图片
subplot(2,2,3); 
imshow(f2);title('gamma=3.0'); 
subplot(2,2,4);
imshow(f3);title('gamma=4.0'); 
imwrite(f3,'C:\Users\Lenovo\Desktop\gamma4.tif'); %保存图像

4、效果:

可以看出当 γ=3.0 时效果较好 。

也可以通过 imadjust(I,[low_in  high_in],[low_out  high_out],gamma) 函数处理。

f1=imadjust(f,[0 1],[0 1],3.0);  %gamma=3.0

5、重点关注的参数?

处理过程中需要注意 γ 的取值,当 γ<1 对比度降低;当 γ>1 对比度增强,根据需要调整 γ 的值。

6、直方图均衡化增强对比度

除点处理操作外还可以通过直方图均衡化增强对比度,使用 adapthisteq()histeq() 函数:

图像二:

1、图像存在的质量问题及操作?

图片主体突出不明确,可以突出图中植物根部的灰度范围。

2、选择的点处理操作?

通过分段线性变换实现灰度级分层,突出特定灰度范围内的亮度。可以使用 imadjust(I,[low_in  high_in],[low_out  high_out],gamma) 函数。

 

3、实现代码:

f=imread('C:\Users\Lenovo\Desktop\angiogram-aortic-kidney.tif'); %读取图像
subplot(2,2,1);
imshow(f);title('原始图像');
f1=imadjust(f,[0.3 0.7],[0 1]); %调整灰度1.0
subplot(2,2,2);
imshow(f1);title('1.0');
f2=imadjust(f,[0.5 0.8],[0 1]); %调整灰度2.0
subplot(2,2,3);
imshow(f2);title('2.0');
f3=imadjust(f,[0.5 0.8],[0.1 0.9]); %调整灰度3.0
subplot(2,2,4);
imshow(f3);title('3.0');
imwrite(f3,'C:\Users\Lenovo\Desktop\f1.tif'); %保存修改后图片

4、效果:

可以看出 low_in=0.5,high_in=0.8,low_out=0.1,high_out=0.9,gamma=1.0 时效果较好 。

 

5、重点关注的参数? 

处理过程中需要注意 low_inhigh_inlow_outhigh_out,以及 gamma 的取值。imadjust(I,[low_in  high_in],[low_out  high_out],gamma) 中低于 low_in 的灰度值会映射成 low_out,高于 high_in 的灰度值会映射成 high_out。实际应用中根据需要突出灰度值的范围调整数值。

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

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

相关文章

ARM单片机使用CAN总线部署BootLoader

1.引言 1.1.单片机开发BootLoader意义 单片机开发BootLoader的原因主要与其在嵌入式系统中的关键作用有关。BootLoader是硬件启动的引导程序&#xff0c;它在操作系统内核或用户应用程序运行之前执行。以下是单片机开发BootLoader的主要原因&#xff1a; 初始化硬件设备&…

算法设计与分析:并查集法求图论桥问题

目录 一、实验目的 二、问题描述 三、实验要求 四、算法思想 1. 基准算法 1.1 算法思想 1.2 代码 1.3 时间复杂度 2. 使用并查集的高效算法 2.1 算法思想 2.2 代码&#xff1a; 2.3 时间复杂度&#xff1a; 五、实验结果 一、实验目的 1. 掌握图的连通性。 2. 掌…

卷积的通俗解释

以时间和空间两个维度分别理解卷积&#xff0c;先用文字来描述&#xff1a; 时间上&#xff0c;任何当前信号状态都是迄至当前所有信号状态的叠加&#xff1b;时间上&#xff0c;任何当前记忆状态都是迄至当前所有记忆状态的叠加&#xff1b;空间上&#xff0c;任何位置状态都…

python怎样自动提示

第一步、打开pycharm&#xff0c;如下图所示&#xff1a; 第二步、File→Power Save Mode&#xff0c;把下面如图所示的勾去掉&#xff1a; 第三步、去掉勾后&#xff0c;不再使用省电模式&#xff0c;新建一个python文件。输入单词前两个字母&#xff0c;就会自动提示了&#…

为什么说大模型训练很难?

前言 在人工智能的浪潮中&#xff0c;大模型训练无疑是一股不可忽视的力量。然而&#xff0c;这背后的过程却充满了挑战与困难。今天&#xff0c;让我们一同揭开大模型训练的神秘面纱&#xff0c;探讨为何它值得您的关注与投入。 大模型训练的挑战 大模型训练之所以难&…

选择门店收银系统要考虑哪些方面?美业系统Java源码分享私

开店前的一个重要事件就是选择门店收银软件/系统&#xff0c;尤其是针对美容、医美等美业门店&#xff0c;一个优秀专业的系统十分重要&#xff0c;它必须贴合门店的经营需求&#xff0c;提供更全面、便捷、高效的管理功能&#xff0c;帮助提升门店的服务质量和经营效益。 以下…

Python笔记 文件的读取操作

1.open()打开函数 再Python&#xff0c;使用open函数&#xff0c;可以打开一个已经存在的文件&#xff0c;或者创建一个新文件&#xff0c;语法如下 open(name,mode,encoding) name:是要打开的文件名的字符串&#xff08;可以包含文件所在的具体路径&#xff09; mode&…

【几何】多少正方形?

题目枚举边长为1边长为 2 \sqrt{2} 2 ​边长为 5 \sqrt{5} 5 ​边长为 8 \sqrt{8} 8 ​边长为 13 \sqrt{13} 13 ​ 扩展-使用代码来数1、定义点对象2、定义正方形对象3、初始化所有点4、调用完整代码 题目 多少正方形&#xff1f; 枚举 设每个横纵相邻点得间距为1&#xff0…

线程池概念、线程池的不同创建方式、线程池的拒绝策略

文章目录 &#x1f490;线程池概念以及什么是工厂模式&#x1f490;标准库中的线程池&#x1f490;什么是工厂模式&#xff1f;&#x1f490;ThreadPoolExecutor&#x1f490;模拟实现线程池 &#x1f490;线程池概念以及什么是工厂模式 线程的诞生是因为&#xff0c;频繁的创…

3D Web轻量化引擎HOOPS Commuicator是如何创建AEC查看器的?

在当今数字化时代&#xff0c;建筑、工程和施工&#xff08;AEC&#xff09;行业正经历着一场技术革命。HOOPS Communicator&#xff0c;一款基于HOOPS Web平台的3D Web轻量化引擎&#xff0c;正是这场革命的先锋之一。本文将探讨HOOPS Communicator是如何创建AEC查看器的&…

【CentOS 7】深入指南:使用LVM和扩展文件系统增加root分区存储容量

【CentOS 7】深入指南&#xff1a;使用LVM和扩展文件系统增加root分区存储容量 大家好 我是寸铁&#x1f44a; 【CentOS 7】深入指南&#xff1a;使用LVM和扩展文件系统增加root分区存储容量 ✨ 喜欢的小伙伴可以点点关注 &#x1f49d; 前言 在运行CentOS 7服务器或虚拟机时&a…

【扫雷游戏】C语言详解

Hi~&#xff01;这里是奋斗的小羊&#xff0c;很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~~ &#x1f4a5;&#x1f4a5;个人主页&#xff1a;奋斗的小羊 &#x1f4a5;&#x1f4a5;所属专栏&#xff1a;C语言 &#x1f680;本系列文章为个人学习…

lvs集群 Keepalived

Keepalived高可用集群 Keepalived概述 功能 LVS规则管理LVS集群真实服务器状态监测管理VIP Keepalived实现web高可用 安装keepalived软件 在webservers上配置 启动服务 webservers systemctl start keepalived.service ip a s | grep 192.168 #web1主机绑定vip 测试…

Windows资源管理器down了,怎么解

ctrlshiftesc 打开任务管理器 文件 运行新任务 输入 Explorer.exe 资源管理器重启 问题解决 桌面也回来了

MoonBit 周报 Vol.46:支持32位无符号整数!

MoonBit 更新 支持了 32 位无符号整数 let num 100U // 32位无符号整数的字面量需要后缀U在 wasm 后端导出返回值类型为 Unit 的函数时&#xff0c;之前导出函数的类型中会有 (result i32)&#xff0c;现在 MoonBit 编译器会自动生成一个没有返回值 wrapper 函数&#xff0c…

爬虫day3

爬虫如何提高效率&#xff1f; 我们可以选择多线程&#xff0c;多进程&#xff0c;协程等操作完成异步爬取。 异步&#xff1a;把一个变成多个 线程&#xff1a;执行单位 进程&#xff1a;资源单位&#xff0c;每一个进程至少有一个线程 if __name__ __main__: print(&qu…

都说HCIE“烂大街”了,说难考都是假的?

在网络技术领域&#xff0c;华为认证互联网专家&#xff08;HCIE&#xff09;长期以来被视为一项高端认证&#xff0c;代表着专业技能和知识水平。 然而&#xff0c;近几年来&#xff0c;考证的重视度直线上升&#xff0c;考HCIE的人越来越多了&#xff0c;考过的人好像也越来越…

C++ | Leetcode C++题解之第162题寻找峰值

题目&#xff1a; 题解&#xff1a; class Solution { public:int findPeakElement(vector<int>& nums) {int n nums.size();// 辅助函数&#xff0c;输入下标 i&#xff0c;返回一个二元组 (0/1, nums[i])// 方便处理 nums[-1] 以及 nums[n] 的边界情况auto get …

android adb常用命令集

1、系统调试 #adb shell&#xff1a;进入设备的 shell 命令行界面&#xff0c;可以在此执行各种 Linux 命令和特定的 Android 命令。 #adb shell dumpsys&#xff1a;提供关于系统服务和其状态的详细信息。 #adb logcat&#xff1a;实时查看设备的日志信息。可以使用过滤条件来…

震惊!这样制作宣传册,效果竟然如此惊人!

在当今社会&#xff0c;宣传册作为一种重要的宣传手段&#xff0c;其制作质量直接影响到宣传效果。而令人震惊的是&#xff0c;现在有些制作宣传册的方法&#xff0c;其效果竟然如此惊人&#xff01;今天&#xff0c;教大家如何制作宣传册吧&#xff01; 首先&#xff0c;我们要…