当前位置: 首页 > news >正文

实验四 图像增强—灰度变换之直方图变换

一.实验目的

1.掌握灰度直方图的概念及其计算方法;

2.熟练掌握直方图均衡化计算过程;了解直方图规定化的计算过程;

3.了解色彩直方图的概念和计算方法

二.实验内容

1 读取数字图像,显示直方图(例如使用imhist,有余力可尝试bar,stem等函数),并进行直方图均衡化处理;

2 显示经过均衡化处理过的图像直方图。

3 有余力可探索更多关于直方图的图像处理操作(例如直方图规定化、局部直方图规定化等)。

4 记录和整理实验报告。

三.实验程序、实验结果与实验分析

1.实验程序

(1)读取数字图像,显示直方图,并进行直方图均衡化处理(Test4_1)

I=imread('pollen.jpg');  J=histeq(I);%对原图像进行直方图均衡化处理figure;subplot(1,2,1) ;imshow(I);title('原图像');         subplot(1,2,2) ;imshow(J); title('直方图均衡化后的图像') ;   figure; subplot(1,2,1) ;imhist(I,64);    %将原图像直方图显示为64级灰度title('原图像直方图') ;       subplot(1,2,2);             imhist(J,64) ;    %将均衡化后图像的直方图显示为64级灰度title('均衡变换后的直方图') ; 

(2)读取数字图像,显示直方图,并进行直方图规定化处理(Test4_2)

I=imread('mars.jpg');% 显示原始图像和其直方图figure;subplot(1, 2, 1);imshow(I);title('火星天体福布斯的图像');subplot(1, 2, 2);imhist(I, 64);title('原图像直方图');m1 = 0.15; sig1 = 0.05;  m2 = 0.75; sig2 = 0.05; A1 = 1; A2 = 0.07;  k = 0.002; p = twomodegauss(m1, sig1, m2, sig2, A1, A2, k);% 对图像进行直方图规定化处理J = histeq(I, p);% 显示规定化处理后的图像和其直方图figure;subplot(1, 2, 1);imshow(J);title('直方图规定化后的图像');subplot(1, 2, 2);imhist(J, 64);title('规定化处理后的直方图');

(3)读取数字图像,显示直方图,并进行局部直方图规定化处理(Test4_3)

f=imread('mars.jpg');figure; subplot(2, 2, 1); imshow(f); title('原始图像'); g1=adapthisteq(f);subplot(2, 2, 2); imshow(g1); title('用默认值使用adpthisteq函数的结果'); g2=adapthisteq(f,'NumTiles',[25,25]);subplot(2, 2, 3); imshow(g2); title('将参数NumTiles设置为[25,25]时函数的结果'); g3=adapthisteq(f,"NumTiles",[25,25],"ClipLimit",0.05);subplot(2, 2, 4); imshow(g3); title('使用这个小片数量,并且ClipLimit=0.05时得到的结果');

2.实验结果

(1)读取数字图像,显示直方图,并进行直方图均衡化处理

(2)读取数字图像,显示直方图,并进行直方图规定化处理

直方图规定化后的图像

(3)读取数字图像,显示直方图,并进行局部直方图规定化处理

3.实验分析

(1)读取数字图像,显示直方图,并进行直方图均衡化处理

①读取灰度图像pollen.jpg
I=imread('pollen.jpg');  
②对原图像进行直方图均衡化处理
J=histeq(I);
③将均衡化后图像的直方图显示为64级灰度 
imhist(J,64) ;    %将均衡化后图像的直方图显示为64级灰度

(2)读取数字图像,显示直方图,并进行直方图规定化处理

①读取灰度图像mars.jpg
I=imread('mars.jpg');
②使用双模态高斯函数作为特定的直方图
m1 = 0.15; sig1 = 0.05;  m2 = 0.75; sig2 = 0.05; A1 = 1; A2 = 0.07;  k = 0.002; p = twomodegauss(m1, sig1, m2, sig2, A1, A2, k);
③对图像进行直方图规定化处理
J = histeq(I, p);

(3)读取数字图像,显示直方图,并进行局部直方图规定化处理

①读取灰度图像mars.jpg
f=imread('mars.jpg');
②使用adpthisteq函数全部默认设置
g1=adapthisteq(f);
③将小片大小增加到[25,25]
g2=adapthisteq(f,'NumTiles',[25,25]);
④使用小片数量[25,25],使ClipLimit=0.05
g3=adapthisteq(f,"NumTiles",[25,25],"ClipLimit",0.05);

四.思考题

1.直方图是什么概念?它反映了图像的什么信息?

直方图是一个统计图表,它用于表示数字图像中每个灰度级出现的频率或次数。对于一幅给定的图像,直方图能够展示图像中每个像素强度值(灰度级)的分布情况。横坐标通常代表灰度级,而纵坐标则代表该灰度级在图像中出现的频数或频率。

直方图反映了图像的以下几个关键信息:

对比度:通过直方图,可以观察图像中像素强度的分布情况,从而判断图像的对比度。

亮度:直方图的偏移情况可以反映图像的整体亮度。如果直方图主要偏向较高的灰度级,则图像整体偏亮;反之,如果偏向较低的灰度级,则图像整体偏暗。

动态范围:直方图能够展示图像所包含的灰度级范围,从而反映图像的动态范围。


2.直方图均衡化是什么意思?它的主要用途是什么?

直方图均衡化是一种增强图像对比度的方法,通过拉伸像素强度值的分布范围来增强图像的对比度。具体来说,它将原始图像的直方图变换为均匀分布的形式,从而增强图像中不同灰度级之间的对比度。

直方图均衡化的主要用途包括:

提高图像对比度:通过均衡化操作,可以使图像的灰度级分布更加均匀,从而提高图像的对比度,使图像中的细节更加清晰。

改善视觉效果:对于对比度较低的图像,直方图均衡化可以显著改善其视觉效果,使图像更加鲜明、生动。

预处理步骤:在图像处理和分析中,直方图均衡化常作为预处理步骤,为后续的特征提取、目标识别等任务提供更好的图像质量。

相关文章:

实验四 图像增强—灰度变换之直方图变换

一.实验目的 1.掌握灰度直方图的概念及其计算方法; 2.熟练掌握直方图均衡化计算过程;了解直方图规定化的计算过程; 3.了解色彩直方图的概念和计算方法 二.实验内容: …...

使用el-col和el-row布局,有版心,一页有两栏布局 三栏布局 四栏布局 使用vue动态渲染元素

使用Vue结合Element UI的el-row和el-col组件来实现版心布局,并动态渲染不同栏数的布局,可以通过以下步骤实现: 定义版心容器:使用el-container来定义整个页面的容器,其中el-header、el-main、el-footer分别定义头部、主…...

中软国际加入龙蜥社区,促进“技术+生态”双向赋能

近日,中软国际有限公司(简称“中软国际”)签署了 CLA(Contributor License Agreement,贡献者许可协议),正式加入龙蜥社区(OpenAnolis)。 中软国际创立于 2000 年&#x…...

adobe pdf设置默认打开是滚动而不是单页视图

上班公司用adobe pdf,自己还不能安装其它软件。 每次打开pdf,总是默认单页视图,修改滚动后,下次打开又 一样,有时候比较烦。 后面打开编辑->首选项, 如下修改,下次打开就是默认滚动了...

React Hooks 深度解析

Hooks简介 诞生背景: 在React 16.8之前的版本中,组件主要分为函数组件和类组件两大类。函数组件简单轻量,但不支持状态(state)和生命周期方法;而类组件虽然功能强大,但编写和维护起来相对复杂。…...

14-32 剑和诗人6 - GenAI 重塑 SRE 和云工程实践

在不断发展的软件开发和运营领域,各种学科的融合催生了新的范式和实践,旨在简化流程、加强协作和推动创新。DevSecOps、站点可靠性工程 (SRE)、平台工程和云工程已成为支持现代软件系统的重要支柱,每个支柱都解决了独特的挑战和要求。 然而&…...

Towards Deep Learning Models Resistant to Adversarial Attacks

这篇论文的主要内容是关于开发对抗攻击具有抗性的深度学习模型。对抗攻击是通过对输入数据进行微小且精心设计的扰动,诱使深度学习模型做出错误的预测。这种攻击在图像识别、语音识别和自然语言处理等任务中尤为突出。 这篇论文的主要内容是关于开发对抗攻击具有抗…...

2、Key的层级结构

Key的层级结构 Redis的key允许有多个单词形成层级结构,多个单词之间用’:隔开。 举个例子: 我们有一个项目project,有user和product俩种不同的数据类型,那么我们可以这么定义key: user相关的key:project:user:1 pr…...

如何在Qt使用uchardet库

如何在 Qt 中使用 uchardet 库 文章目录 如何在 Qt 中使用 uchardet 库一、简介二、uchardet库的下载三、在Qt中直接调用四、编译成库文件后调用4.1 编译工具下载4.2 uchardet源码编译4.3 测试编译文件4.4 Qt中使用 五、一些小问题5.1 测试文件存在的问题5.2 uchardet库相关 六…...

G9 - ACGAN理论与实战

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 目录 环境步骤环境设置数据准备工具方法模型设计模型训练模型效果展示 总结与心得体会 上周已经简单的了解了ACGAN的原理,并且不经实践的编写了部分…...

合合信息大模型“加速器”亮相2024世界人工智能大会,助力大模型学好“专业课”

7月4日至7日,2024世界人工智能大会在上海拉开帷幕。现阶段,“百模大战”现象背后的中国大模型发展前景与堵点仍然是各界关注的焦点。如何帮助大模型在信息的海洋中快速找准航向,在数据的荒漠中找到高质量的“水源”?合合信息在本次…...

bond网络配置文件中 interface-name 与 id 的区别

在bond网络配置文件中,interface-name和id是两个不同的参数,它们有如下区别: interface-name:该参数用于指定bond设备所使用的物理网卡接口的名称。可以设置一个或多个接口名称,多个接口名称之间使用逗号分隔。例如&am…...

Linux权限概述

一、权限概述 1.权限的基本概念 2.为什么要设置权限 3.linux用户的身份类别 4.user文件的拥有者 5.group文件所属组内用户 6.other其他用户 7.特殊用户root 二、普通权限管理 1.ls -l查看文件权限 2.文件类型以及权限解析 3.文件或文件夹的权限设置 4.通过数字给文件…...

谷粒商城学习-09-配置Docker阿里云镜像加速及各种docker问题记录

文章目录 一,配置Docker阿里云镜像加速二,Docker安装过程中的几个问题1,安装报错:Could not resolve host: mirrorlist.centos.org; Unknown error1.1 检测虚拟机网络1.2 重设yum源 2,报错:Could not fetch…...

基于GWO灰狼优化的多目标优化算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 4.1灰狼优化算法原理 4.2 多目标优化问题(MOP)的帕累托最优解 4.3 基于GWO的多目标优化算法 5.完整程序 1.程序功能描述 基于GWO灰狼优化的多目标优化算法matlab仿真,目标函数…...

排序算法-java版本

冒泡排序 原理&#xff1a;相邻的数据两两比较&#xff0c;小的放前面&#xff0c;大的放后面 int[] arr{3,5,2,1,4} for(int i0;i<arr.length-1;i){for(int j0;j<arr.length-1-i;j){if(arr[j]>arr[j1]){int temparr[j];arr[j]arr[j1];arr[j1]temp;}}}选择排序 升序…...

Java+前后端分离架构+ MySQL8.0.36产科信息管理系统 产科电子病历系统源码

Java前后端分离架构 MySQL8.0.36产科信息管理系统 产科电子病历系统源码 产科信息管理系统—住院管理 数字化产科住院管理是现代医院管理中的重要组成部分&#xff0c;它利用数字化技术优化住院流程&#xff0c;提升医疗服务质量和效率。以下是对数字化产科住院管理的详细阐述…...

js使用websocket,vue使用websocket,copy即用

新建一个文件 websocket.js // 定义websocket 地址 let socketurlDev "ws://192.000.0.0:8085/websocket/admin/"; //开发环境 let socketurlProd "wss://123456789.cn/prod-api/websocket/admin/"; //正式环境// 重连锁, 防止过多重连 let reconnectLo…...

【鸿蒙学习笔记】Stage模型工程目录

官方文档&#xff1a;应用配置文件概述&#xff08;Stage模型&#xff09; 目录标题 FA模型和Stage模型工程级目录模块级目录app.json5module.json5程序执行流程程序基本结构开发调试与发布流程 FA模型和Stage模型 工程级目录 模块级目录 app.json5 官方文档&#xff1a;app.j…...

算法基础-----【动态规划】

动态规划(待完善) 动规五部曲分别为&#xff1a; 确定dp数组&#xff08;dp table&#xff09;以及下标的含义确定递推公式&#xff08;状态转移公式&#xff09;dp数组如何初始化确定遍历顺序举例推导dp数组、 动态规划的核心就是递归剪枝&#xff08;存储键值&#xff0c;…...

后进先出(LIFO)详解

LIFO 是 Last In, First Out 的缩写&#xff0c;中文译为后进先出。这是一种数据结构的工作原则&#xff0c;类似于一摞盘子或一叠书本&#xff1a; 最后放进去的元素最先出来 -想象往筒状容器里放盘子&#xff1a; &#xff08;1&#xff09;你放进的最后一个盘子&#xff08…...

Python|GIF 解析与构建(5):手搓截屏和帧率控制

目录 Python&#xff5c;GIF 解析与构建&#xff08;5&#xff09;&#xff1a;手搓截屏和帧率控制 一、引言 二、技术实现&#xff1a;手搓截屏模块 2.1 核心原理 2.2 代码解析&#xff1a;ScreenshotData类 2.2.1 截图函数&#xff1a;capture_screen 三、技术实现&…...

DAY 47

三、通道注意力 3.1 通道注意力的定义 # 新增&#xff1a;通道注意力模块&#xff08;SE模块&#xff09; class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...

2024年赣州旅游投资集团社会招聘笔试真

2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...

TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案

一、TRS收益互换的本质与业务逻辑 &#xff08;一&#xff09;概念解析 TRS&#xff08;Total Return Swap&#xff09;收益互换是一种金融衍生工具&#xff0c;指交易双方约定在未来一定期限内&#xff0c;基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...

DBAPI如何优雅的获取单条数据

API如何优雅的获取单条数据 案例一 对于查询类API&#xff0c;查询的是单条数据&#xff0c;比如根据主键ID查询用户信息&#xff0c;sql如下&#xff1a; select id, name, age from user where id #{id}API默认返回的数据格式是多条的&#xff0c;如下&#xff1a; {&qu…...

C# 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

《C++ 模板》

目录 函数模板 类模板 非类型模板参数 模板特化 函数模板特化 类模板的特化 模板&#xff0c;就像一个模具&#xff0c;里面可以将不同类型的材料做成一个形状&#xff0c;其分为函数模板和类模板。 函数模板 函数模板可以简化函数重载的代码。格式&#xff1a;templa…...

LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》

这段 Python 代码是一个完整的 知识库数据库操作模块&#xff0c;用于对本地知识库系统中的知识库进行增删改查&#xff08;CRUD&#xff09;操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 &#x1f4d8; 一、整体功能概述 该模块…...

深度学习之模型压缩三驾马车:模型剪枝、模型量化、知识蒸馏

一、引言 在深度学习中&#xff0c;我们训练出的神经网络往往非常庞大&#xff08;比如像 ResNet、YOLOv8、Vision Transformer&#xff09;&#xff0c;虽然精度很高&#xff0c;但“太重”了&#xff0c;运行起来很慢&#xff0c;占用内存大&#xff0c;不适合部署到手机、摄…...