数字图像处理灰度变换与空间域matlab
matlab界面编程实现灰度变换
图形图像处理课程大作业姓名:班级:学号:目录界面编程实现图像灰度变换 (1)摘要 (2)正文 (3)1.MATLAB界面编程简介: (3)2.图像的灰度变换简介 (3)3.采用MATLAB Guide设计界面 (4)3.1 问题分析: (4)3.2实验方法: (4)3.3实验结果: (5)4. 线性变换的算法设计与实现: (5)4.1问题分析: (5)4.2实验方法: (5)4.3实验结果: (6)5. 对数变换的算法设计与实现 (8)5.1问题分析: (8)5.2实验方法: (8)5.3实验结果: (8)6. 幂律变换的算法设计与实现: (10)6.1问题分析: (10)6.2实验方法: (10)6.3实验结果: (11)实验心得 (13)附录 (13)1.参考文献: (13)2.源代码: (13)界面编程实现图像灰度变换问题描述:本课题主要解决的问题是通过MATLAB界面编程实现图像的灰度变换,包括线性灰度变换、对数灰度变换、幂律灰度变换,以此来实现图像增强,使图像更适合于进一步的分析和对它内容的提取。
实现界面编程可以更方便的对图片进行操作,例如可以打开任意一张需要处理的图片,可以使图像处理结果更直观,对比更明显,更利于进行观察,同时可以实现保存处理后的图片,这样,图像的操作更简洁、直接。
摘要本次报告旨在完成以下几个任务:1、MATLAB界面编程简介;2、图像的灰度变换简介;3、采用MATLAB Guide设计界面,设计实现下列功能的按钮:可以读入并显示任意一张图像,可以实现图像灰度变换(线性变换、对数变换和幂律变换),可以保存处理后的图片,可以退出程序,点击相应的按钮可以实现相应的功能;4、线性变换的算法设计与实现;5、对数变换的算法设计与实现;6、幂律变换的算法设计与实现。
结果如正文所示。
正文1.MATLAB界面编程简介:图形用户界面是由窗口、光标、按键、菜单、文字说明等对象构成的一个用户界面。
数字图像处理及matlab实现
THANKS
05 数字图像处理的应用案例
医学影像处理
1 2 3
医学影像诊断
数字图像处理技术可以用于医学影像的预处理、 增强、分割和识别,帮助医生更准确地诊断疾病。
医学图像重建
通过数字图像处理技术,可以从低质量的医学图 像中重建出高质量的图像,提高医学影像的清晰 度和诊断价值。
医学图像配准与融合
数字图像处理技术可以实现不同模态医学图像之 间的配准与融合,提供更全面的医学信息。
离散余弦变换
将图像从空间域转换到余弦函数构成的系数矩阵,用于数据压缩 和去噪。
Matlab中的图像恢复实现
超分辨率
通过多幅低分辨率图像合成一幅高分辨率图 像,提高图像的分辨率。
去噪
利用各种滤波技术去除图像中的噪声,恢复 原始图像。
失真校正
对由于拍摄、传输等原因造成的图像失真进 行校正,提高图像质量。
数字图像处理及 Matlab实现
目录
Contents
• 数字图像处理基础 • Matlab基础 • 数字图像处理技术 • Matlab在数字图像处理中的应用 • 数字图像处理的应用案例
01 数字图像处理基础
图像的数字化
总结词
将连续的图像转化为离散的像素点阵列。
详细描述
通过将连续的图像转化为离散的像素点阵列,数字图像处理能够将图像信息转 化为计算机能够处理的数字信息。每个像素点由其位置和灰度值表示,形成数 字图像。
图像的灰度级别
总结词
描述像素的亮度级别。
详细描述
图像的灰度级别决定了像素的亮度范围。灰度级别越高,图像的亮度范围越丰富, 细节表现力越强。常见的灰度级别有256级(0-255)和16级(0-15)。
数字图像处理及应用(MATLAB)第6章
edge
检测图像边缘,例如: `BW = edge(I, 'sobel');`
自定义函数实现特定功能
1
自定义函数可以实现一些特定的图像处理功能, 例如图像滤波、形态学处理、特征提取等。
2
在MATLAB中,可以通过编写M文件来定义自己 的函数,然后在图像处理过程中调用这些函数。
3
自定义函数的编写需要遵循MATLAB的语法规则, 同时需要考虑函数的输入、输出参数以及函数的 返回值等问题。
小波变换在图像压缩中的应用
压缩原理
小波变换能够将图像的能量集中在少数几个小波系数上,因此可以通 过保留重要的小波系数并舍弃不重要的小波系数来实现图像压缩。
编码方法
常用的小波编码方法包括嵌入式零树编码(EZW)、分层树集合分裂编码 (SPIHT)等,这些方法能够有效地对小波系数进行编码,实现高压缩比。
MPEG标准
是一种针对运动图像和音频的压缩标准,采用运动补偿预测(MCP)、离散余弦变换(DCT)和量化编码等有损 压缩技术,可实现视频数据的实时传输和存储。MPEG标准包括MPEG-1、MPEG-2、MPEG-4等多个版本,分 别适用于不同应用场景和需求。
04 形态学图像处理
膨胀与腐蚀运算
膨胀运算
通过结构元素在图像中的移动, 将结构元素与图像对应区域进行 逻辑“或”操作,使图像中的高 亮区域逐渐扩大。
腐蚀运算
通过结构元素在图像中的移动, 将结构元素与图像对应区域进行 逻辑“与”操作,使图像中的高 亮区域逐渐缩小。
开闭运算及形态学梯度
01
开运算
先对图像进行腐蚀操作,再进行膨胀操作。可以用来消除图像中的小物
THANKS FOR WATCHING
实验一Matlab图像处理基础及图像灰度变换 - 中南大学信.
实验一Matlab图像处理基础及图像灰度变换一、实验目的了解Matlab平台下的图像编程环境,熟悉Matlab中的DIP (Digital Image Processing)工具箱;掌握Matlab中图像的表示方法,图像类型、数据类型的种类及各自的特点,并知道怎样在它们之间进行转换。
掌握Matlab环境下的一些最基本的图像处理操作,如读图像、写图像、查看图像信息和格式、尺寸和灰度的伸缩等等;通过实验掌握图像直方图的描绘方法,加深直方图形状与图像特征间关系间的理解;加深对直方图均衡算法的理解。
二、实验内容1.从硬盘中读取一幅灰度图像;2.显示图像信息,查看图像格式、大小、位深等内容;3.用灰度面积法编写求图像方图的Matlab程序,并画图;4.把第3步的结果与直接用Matlab工具箱中函数histogram的结果进行比较,以衡量第3步中程序的正确性。
5.对读入的图像进行直方图均衡化,画出处理后的直方图,并比较处理前后图像效果的变化。
三、知识要点1.Matlab6.5支持的图像图形格式TIFF, JEPG, GIF, BMP, PNG, XWD (X Window Dump),其中GIF不支持写。
2.与图像处理相关的最基本函数读:imread; 写:imwrite; 显示:imshow; 信息查看:imfinfo;3.Matlab6.5支持的数据类double, unit8, int8, uint16, int16, uint32, int32, single, char (2 bytes per element), logical.4.Matlab6.5支持的图像类型Intensity images, binary images, indexed images, RGB image5.数据类及图像类型间的基本转换函数数据类转换:B = data_class_name(A);四、参考程序和参考结果1.求灰度直方图===================================================================== % Experiment 1: calculate the histogram of gray-scale through gray-scale area% functionf=imread('J:\ebook and code_ex\image processing\digital image process2_Woods\DIP usingMatlab\image database\dipum_images_ch02\dipum_images_ch02\Fig0206(a)(rose-original).tif');[m,n]=size(f);gray_area=zeros(1,256);% compute the area under certain gray levelfor k=0:255ind = find(f == k);gray_area(k+1) = length(ind);end% compute the histogram by performing the difference for gray_areahist=zeros(1,256);for k=0:254hist(k+1)=gray_area(k+2)-gray_area(k+1);end% normalizationhist=hist/numel(f);subplot(121); imshow(f);subplot(122);stem([1:1:256],hist,'.');axis([1 256 0 max(hist)]);===============================================================================f = imread('Fig0308(a)(pollen).tif'); subplot(221); imshow(f); title('the orignal image'); subplot(222); imhist(f); ylim('auto');g = histeq(f, 256);subplot(223); imshow(g);title('image after equalization'); subplot(224); imhist(g);ylim('auto');the orignal image5010015020025004image after equalization5010015020025004。
MATLAB图形图像处理2课件
• imfilter是用来实现线性空间滤波的函数,其基本语法格式 为:
• hp = imfilter(p, w, filter_mode, boundary_options, size_options)
• 其中hp为经过滤波后输出的图像,p为原图像,参数w为滤 波模板,filter_mode指定滤波过程中使用相关核(corr)还 是卷积核(conv)。boundary_options控制边界填充方式为 边界复制(replicate)、边界循环(circular)还是边界对 称(symmetric)。size_options可以为same或者full两者之 一。如 hp = imfilter(p, w, ’replicate’)
• subplot(1,3,3);imshow(p2);
• 图3.33 拉普拉斯波和高斯-拉普拉斯滤波((a)原 图像;(b)拉普拉斯滤波后图像;(c)高斯-拉普拉 斯滤波后图像)
3.7 图像的空间变换
• 图像的空间变换也称为图像的几何变 换,是指将用户获得或设计的原始图像, 按照需要产生大小、形状和位置的变化。 图像几何变换是图像显示技术中的一个重 要组成部分,常用的图像几何变换主要包 括图像的缩放、图像的剪切及图像的旋转 等内容。
• p = imread('football.jpg');
• I = rgb2gray(p);
• imhist(I);
3.5.3直方图均衡化
• 通过直方图均衡化做适当的调整,即把一幅已知灰 度概率分布图像中的像素灰度做某种映射变换,使 它变成一幅具有均匀概率分布的新图像,使图像视 觉效果更加清晰。
• imnoise是MATLAB提供的图像噪声模拟函数,其 基本语法格式为:
实验一Matlab图像处理基础及图像灰度变换 - 中南大学信.
实验一Matlab图像处理基础及图像灰度变换一、实验目的了解Matlab平台下的图像编程环境,熟悉Matlab中的DIP (Digital Image Processing)工具箱;掌握Matlab中图像的表示方法,图像类型、数据类型的种类及各自的特点,并知道怎样在它们之间进行转换。
掌握Matlab环境下的一些最基本的图像处理操作,如读图像、写图像、查看图像信息和格式、尺寸和灰度的伸缩等等;通过实验掌握图像直方图的描绘方法,加深直方图形状与图像特征间关系间的理解;加深对直方图均衡算法的理解。
二、实验内容1.从硬盘中读取一幅灰度图像;2.显示图像信息,查看图像格式、大小、位深等内容;3.用灰度面积法编写求图像方图的Matlab程序,并画图;4.把第3步的结果与直接用Matlab工具箱中函数histogram的结果进行比较,以衡量第3步中程序的正确性。
5.对读入的图像进行直方图均衡化,画出处理后的直方图,并比较处理前后图像效果的变化。
三、知识要点1.Matlab6.5支持的图像图形格式TIFF, JEPG, GIF, BMP, PNG, XWD (X Window Dump),其中GIF不支持写。
2.与图像处理相关的最基本函数读:imread; 写:imwrite; 显示:imshow; 信息查看:imfinfo;3.Matlab6.5支持的数据类double, unit8, int8, uint16, int16, uint32, int32, single, char (2 bytes per element), logical.4.Matlab6.5支持的图像类型Intensity images, binary images, indexed images, RGB image5.数据类及图像类型间的基本转换函数数据类转换:B = data_class_name(A);四、参考程序和参考结果1.求灰度直方图===================================================================== % Experiment 1: calculate the histogram of gray-scale through gray-scale area% functionf=imread('J:\ebook and code_ex\image processing\digital image process2_Woods\DIP usingMatlab\image database\dipum_images_ch02\dipum_images_ch02\Fig0206(a)(rose-original).tif');[m,n]=size(f);gray_area=zeros(1,256);% compute the area under certain gray levelfor k=0:255ind = find(f == k);gray_area(k+1) = length(ind);end% compute the histogram by performing the difference for gray_areahist=zeros(1,256);for k=0:254hist(k+1)=gray_area(k+2)-gray_area(k+1);end% normalizationhist=hist/numel(f);subplot(121); imshow(f);subplot(122);stem([1:1:256],hist,'.');axis([1 256 0 max(hist)]);===============================================================================f = imread('Fig0308(a)(pollen).tif'); subplot(221); imshow(f); title('the orignal image'); subplot(222); imhist(f); ylim('auto');g = histeq(f, 256);subplot(223); imshow(g);title('image after equalization'); subplot(224); imhist(g);ylim('auto');the orignal image5010015020025004image after equalization5010015020025004。
基于灰度变换的图像增强及MATLAB实现.
n=256时:
(请自己运行查看)
下面利用直方图均衡化增强图像的对比度:
I=imread('cameraman.tif';
J=histeq(I;
%将灰度图像转换成具有64(默认)个离散灰度级的灰度图像
imshow(I
title('原始图像'
figure,imshow(J
title('直方图均衡化后的图像'
三直方图增强及matlab实现
3.1直方图均衡化
直方图均衡化是一种最常用的直方图修正。它是把给定图象的直方图分布改造成均匀直方图分布。由信息学的理论来解释,具有最大熵(信息量的图象为均衡化图象。直观地讲,直方图均衡化导致图象的对比度增加。直方图均衡化基本做法是将每个灰度区间等概率分布代替了原来的随机分布,即增强后的图象中每一灰度级的像元数目大致相同。直方图均衡化可使得面积最大的地物细节得以增强,而面积小的地物与其灰度接近的地物进行合并,形成综合地物。减少灰度等级换取对比度的增大要注意的是,均衡化处理后的图象只能是近似均匀分布。均衡化图象的动态范围扩大了,但其本质是扩大了量化间隔,而量化级别反而减少了,因此,原来灰度不同的象素经处理后可能变的相同,形成了一片的相同灰度的区域,各区域之间有明显的边界,从而出现了伪轮廓。
matlab直方图均衡化的函数是histeq,
I = imread('pout.tif';
[J,T] = histeq(I;
figure,plot((0:255/255,T;
图像的灰度直方图均衡化公式:
公式中,T(rk来表示原图像的第k个灰度级的转换函数。∑表示总和。∑nj/N表示0~j个灰度级的像素数量总和与像素总数的比值,也就是前面讲过的百分位(当前色阶与前面色阶的所有像素数量÷总像素数量。∑Pr(rk表示第0~k的灰度级出现概率累积相加。因为s是归一化的数值(s∈[0,1],要转换为0~255的颜色值,需要再乘上255,即S=∑Pr(rk*255。
如何进行MATLAB图像处理
如何进行MATLAB图像处理一、引言图像处理是计算机视觉和图像分析领域中的重要任务之一。
而MATLAB是一种强大的数学计算软件,也被广泛应用于图像处理。
本文将介绍如何使用MATLAB进行图像处理,并探讨一些常见的图像处理技术。
二、图像处理基础在开始使用MATLAB进行图像处理之前,我们需要了解一些基础知识。
一个图像通常由像素组成,每个像素都有一个灰度值或者RGB(红绿蓝)三个通道的值。
图像的处理可以分为两个主要方面:空间域处理和频域处理。
1. 空间域处理空间域图像处理是指直接对图像的像素进行操作,常见的处理方法包括亮度调整、对比度增强和图像滤波等。
MATLAB提供了一系列函数和工具箱来进行这些处理。
例如,要调整图像的亮度,可以使用imadjust函数。
该函数可以通过调整输入图像的灰度值范围,实现亮度的增强或者降低。
下面是一个简单的例子:```matlabI = imread('image.jpg'); % 读取图像J = imadjust(I,[0.2 0.8],[0 1]); % 调整亮度范围imshow(J); % 显示图像```2. 频域处理频域图像处理是指将图像从空间域转换到频域进行处理,常见的处理方法包括傅里叶变换和滤波等。
MATLAB提供了fft和ifft等函数来进行频域处理。
例如,要对图像进行傅里叶变换,可以使用fft2函数。
该函数将图像转换为频率域表示,可以进一步进行滤波等处理。
下面是一个简单的例子:```matlabI = imread('image.jpg'); % 读取图像F = fft2(I); % 傅里叶变换F = fftshift(F); % 频率域中心化imshow(log(1 + abs(F)),[]); % 显示频率域图像```三、图像处理技术了解了图像处理的基础知识后,我们可以探索一些常见的图像处理技术。
以下将介绍几个常用的技术,并给出相应的MATLAB代码示例。
matlab图像处理综合实验实验报告
《数字图像处理》实验报告学院:专业:班级:姓名:学号:实验一实验名称:图像增强实验目的:1.熟悉图像在Matlab下的读入,输出及显示;2.熟悉直方图均衡化;3.熟悉图像的线性指数等;4.熟悉图像的算术运算及几何变换.实验仪器:计算机,Matlab软件实验原理:图像增强是为了使受到噪声等污染图像在视觉感知或某种准则下尽量的恢复到原始图像的水平之外,还需要有目的性地加强图像中的某些信息而抑制另一些信息,以便更好地利用图像。
图像增强分频域处理和空间域处理,这里主要用空间域的方法进行增强。
空间域的增强主要有:灰度变换和图像的空间滤波。
图像的直方图实际上就是图像的各像素点强度概率密度分布图,是一幅图像所有像素集合的最基本统计规律,均衡化是指在每个灰度级上都有相同的像素点过程。
实验内容如下:I=imread('E:\cs.jpg');%读取图像subplot(2,2,1),imshow(I),title('源图像')J=rgb2gray(I)%灰度处理subplot(2,2,2),imshow(J) %输出图像title('灰度图像') %在原始图像中加标题subplot(2,2,3),imhist(J) %输出原图直方图title('原始图像直方图')0100200几何运算:I=imread('E:\cs.jpg');%subplot(1,2,1),imshow(I); theta = 30;K = imrotate(I,theta); subplot(1,2,2),imshow(K)对数运算:I=imread('E:\dog.jpg');subplot(2,2,1),imshow(I),title('源图像') J=rgb2gray(I)%灰度处理subplot(2,2,2),imshow(J),title('灰度变换后图像') J1=log(1+double(J));subplot(2,2,3),imshow(J1,[]),title('对数变换后') 指数运算:I=imread('E:\dog.jpg'); f=double(I); g=(2^2*(f-1))-1 f=uint8(f); g=uint8(g);subplot(1,2,1);subimage(f),title('变换一') subplot(1,2,2);subimage(g),title('变换二')加法运算:clc;clear all;close all; i = imread('E:\dog.jpg');j = imnoise(i,'gaussian',0,0.02);subplot(1,3,1),imshow(i),title('图一') subplot(1,3,2),imshow(j),title('图二') k=zeros(242,308); for p=1:100j = imnoise(i,'gaussian',0,0.02); j1 = im2double(j); k = k + j1; end k=k/100;subplot(1,3,3),imshow(k),title('图三')变换一200400600100200300400500变换二200400600100200300400500实验二实验名称:图像变换实验目的:(1)进一步对matlab的了解和使用;(2)学习如何在matlab中对数字图像的处理;实验原理:图像和其他信号一样,既能在空间域处理,也能在频率域处理。
图像的基本灰度变换
Digital Image Processing 数字图像处理实验DIP Lab 2数字图像处理实验2 —空间域增强(1):图像的灰度变换实验目的1.学习常见的图像增强的方法并实际体会图像增强前后画质的变化;2.了解几种不同增强方式用于不同图像处理所取得的效果;3.培养处理实际图像的能力并为课堂教学提供配套的实践机会。
实验要求1.利用MatLab工具箱中关于图像增强的函数对本指导书中的指定图像进行灰度增强处理;2.自己编制程序实现MatLab工具箱中函数以外的图像增强算法,对于本指导书中指定的图像进行处理。
实验内容一:灰度变换1.运用亮度变换函数imadjust对图像进行增强处理,观察图像对比度的变化。
实验教材P63 -642.学习教材【例2-21】和【例2-22】,实现对图像进行分段线性变换:编程实验:对图pout.tif ,将其小于30的灰度值不变,将30到150的灰度值拉伸到30到200,同时压缩150到255的灰度值到200到255之间.3.编程实验:对图像Fig3.04(a).jpg进行求反,观察图像处理前后的变化;4.验证实验:对图像进行对数变换,观察图像处理前后的变化;5.总结灰度变换增强方法处理的特点;常见图像格式数据类操作提示(续)w贴图时可以点击图像窗口的Edit,然后在下拉菜单中点击Copy Figure,即可将图像放入减切板,然后就可以在WORD文档中粘贴。
灰度变换原图像f(m,n) 的灰度范围[a,b] 线形变换为图像g(m,n),灰度范围[a’,b’]公式:g(m,n)=a’+(b’-a’)* f(m,n) /(b-a)运用灰度变换函数imadjustJ = imadjust(I,[low in;high in],[low out;high out],gamma)反转实验:思考用matlab自带函数imadjust实现图像反转,图3.4(a)思考题/问答题1.小结一下本实验所用的增强方法。
matlab图像的灰度变换
matlab图像的灰度变换实验⼆图像的灰度变换⼀、实验⽬的1、理解数字图像处理中点运算的基本作⽤;2、掌握对⽐度调整与灰度直⽅图均衡化的⽅法。
⼆、实验原理1、对⽐度调整如果原图像f (x , y )的灰度范围是[m , M ],我们希望对图像的灰度范围进⾏线性调整,调整后的图像g (x , y )的灰度范围是[n , N ],那么下述变换:[]n m y x f mM n N y x g +---=),(),(就可以实现这⼀要求。
MATLAB 图像处理⼯具箱中提供的imadjust 函数,可以实现上述的线性变换对⽐度调整。
imadjust 函数的语法格式为:J = imadjust(I,[low_in high_in], [low_out high_out])J = imadjust(I, [low_in high_in], [low_out high_out])返回原图像I 经过直⽅图调整后的新图像J ,[low_in high_in]为原图像中要变换的灰度范围,[low_out high_out]指定了变换后的灰度范围,灰度范围可以⽤ [ ] 空矩阵表⽰默认范围,默认值为[0, 1]。
不使⽤imadjust 函数,利⽤matlab 语⾔直接编程也很容易实现灰度图像的对⽐度调整。
但运算的过程中应当注意以下问题,由于我们读出的图像数据⼀般是uint8型,⽽在MATLAB 的矩阵运算中要求所有的运算变量为double 型(双精度型)。
因此读出的图像数据不能直接进⾏运算,必须将图像数据转换成双精度型数据。
2、直⽅图均衡化直⽅图均衡化的⽬的是将原始图像的直⽅图变为均衡分布的形式,即将⼀已知灰度概率密度分布的图像,经过某种变换变成⼀幅具有均匀灰度概率密度分布的新图像,从⽽改善图像的灰度层次。
MATLAB 图像处理⼯具箱中提供的histeq 函数,可以实现直⽅图的均衡化。
三、实验内容及要求1、⽤MATLAB 在⾃建的⽂件夹中建⽴example2.m 程序⽂件。
灰度变换_原理_及Matlab程序
图像灰度变换内容摘要1 引言通常经输入系统获取的图像信息中含有各种各样的噪声与畸变,例如室外光照度不够均匀会造成图像灰度过于集中;由摄像头获得的图像经过A/D转换、线路传送都会产生噪声污染等等,这些不可避免地影响系统图像清晰度,降低了图像质量,轻者表现为图像不干净,难以看清细节;重者表现为图像模糊不清,连概貌都看不出来。
因此,在对图像经行分析前,必须对图像质量经行改善,一般情况下改善的方法有两类:图像增强和图像复原。
图像增强的目的是设法改善图像的视觉效果,提高图像的可读性,将图像中感兴趣的特征有选择的突出,便于人与计算机的分析和处理。
图像增强不考虑图像质量下降的原因,只将图像中感兴趣的特征有选择的突出,而衰减不需要的特征。
灰度变换是图像增强处理中一种非常基础直接的空间域图像处理方法。
灰度变换是根据某种条件按一定变换关系逐点改变原图像中每一个像素灰度值的方法。
1.灰度的线性变换当图像由于成像时曝光不足或过度, 由于成像设备的非线性或图像记录设备动态范围太窄等因素, 都会产生对比度不足的弊病, 使图像中的细节分辨不清。
这时如将图像灰度线性扩展, 常能显著改善图像的主观质量。
假设原图像f (x, y ) 的灰度范围是[ a, b ] 希望变换后图像的灰度范围扩展到[ c, d ] 则:M f 表示f ( x, y ) 的最大值。
在线性灰度变换中,灰度执照完全线性变换函数进行变换。
该线性灰度线性变换函数f ( r ) 是一个一维线性函数:其中, a 为线性变换的斜率, b 为线性变换函数在y 轴的截距, 如图1所示。
在灰度的线性变换中, 当a > 1时, 输出图像的对比度将增大; 当a < 1时, 输出图像的对比度将减小; 当a = 1且b ∃0时, 所进行的操作仅使所有像素的灰度值上移或下移, 其效果是使整个图像更暗或更亮; 如果a < 0, 则暗区域将变亮, 亮区域将变暗。
2分段线性灰度变换为了突出感兴趣的目标或者灰度区间, 相对抑制那些不感兴趣的灰度区域, 可采用分段线性法。
基于MATLAB的数字图像灰度修正处理
河北大学工商学院数字图像处理结课作业题目:基于MATLAB的数字图像灰度修正处理姓名学号:XXXXXX XXXXXXXXXX XXXXXXX班XXXXXX XXXXXXXXXX XXXXXXX班XXXXXX XXXXXXXXXX XXXXXXX班XXXXXX XXXXXXXXXX XXXXXXX班组别:第十五组指导教师:XXXXXX20XX年 XX月 XX日摘要:灰度修正处理是图像增强处理技术中一种非常基础、直接的空间域图像处理方法,也是图像数字化和图像显示的一个重要组成部分。
在成像过程中,很多因素会导致图像的灰度级发生失真。
本文主要说明了灰度级失真的原因,并针对这些问题讨论了如何基于MATLAB在图像采集系统中对图像像素进行修正。
我们完成图像的灰度变换和直方图均衡化,使图像能够补偿成均匀的成像,在视觉上得到改善达到预期的显示效果。
关键词:图像处理;灰度变换;MATLAB;图像采集图像是人类获取和交换信息的主要来源,图像处理起初主要应用在遥感、医学等领域。
然而,随着人类活动范围的不断扩大、需求不断提高,图像处理的应用几乎渗透到科学研究、工程技术和人类社会生活的各个领域。
图像校正是指对失真图像进行的复原性处理。
实际的复原过程是设计一个滤波器,使其能从失真图象中计算得到真实图象的估值,使其根据预先规定的误差准则,最大程度地接近真实图象。
一灰度及灰度失真在成像过程中,很多因素会导致图像的灰度发生失真,如光照的强弱、光电转换系统中感光部件的灵敏度、电子元器件特性的不稳定等,均可引起图像亮度的不均匀。
还有一些原因也会引起图像的失真:成象系统的象差、畸变、带宽有限等造成的;由于成象器件拍摄姿态和扫描非线性引起的;由于运动模糊、辐射失真、引入噪声等造成的。
灰度级矫正希望在图像采集系统中对图像像素进行逐点修正使得整幅图像能够补偿成均匀的成像。
图象校正的基本思路是,根据图像失真原因,建立相应的数学模型,从被污染或畸变的图象信号中提取所需要的信息,沿着使图象失真的逆过程恢复图象本来面貌。
数字图像处理及应用(MATLAB)第3章
程序运行结果如图(c)所示。
4.灰度非线性变换 当用某些非线性函数,例如平方、对数、指数函数等作为 映射函数时,可实现图像灰度的非线性变换。灰度的非线性 变换简称非线性变换,是指由这样一个非线性单值函数所确 定的灰度变换。 (1)对数变换 对数变换常用来扩展低值灰度,压缩高值灰度,这样可以使低值灰 度的图像细节更容易看清,从而达到增强的效果。对数非线性变换
[例] 假设一个图像由一个4×4大小的二维数值矩阵构成,如图(a)
所示,试写出图像的灰度分布,并画出图像的直方图。
灰度直方图计算示意图
经过统计图像中灰度值为0的像素有1个,灰度值为1的 像素有1个,…,灰度值为6的像素有1个。由此得到图像的 灰度分布如表所示,由表可得灰度直方图如图(b)所示。 图像的灰度分布
3.1.2 (rk)代表概 率密度函数,并且有下式成立:
nk Pr (rk ) 0 rk 1 n k 0,1,2,l 1
式中nk为图像中出现rk这种灰度的像素数,n是图像中像素 总数,nk/n就是概率论中的频数,l是灰度级的总数目。在直 角坐标系中作出rk与P(rk)的关系图形,就得到直方图
图 不同的图像其直方图却是相同的
图 直方图的叠加性质
由以上可知,尽管直方图不能表示出某灰度级的像素在什么位
置,更不能直接反映出图像内容,但是却能描述该图像的灰度分布
特性,使人们从中得到诸如图像的明亮程度、对比度等,成为一些 处理方法的重要依据。通常一幅均匀量化的自然图像由于其灰度直
方图分布集中在较窄的低值灰度区间,引起图像的细节看不清楚,
(a)反变换关系
(b) 原图 图像反转的效果
(c)变换后的图像
由直线方程截斜式可知当k =-1,b=L-1时,其表达式为:
图像处理灰度变换实验
一. 实验名称:空间图像增强(一)一.实验目的1.熟悉和掌握利用matlab工具进行数字图像的读、写、显示、像素处理等数字图像处理的基本步骤和流程。
2.熟练掌握各种空间域图像增强的基本原理及方法。
3.熟悉通过灰度变换方式进行图像增强的基本原理、方法和实现。
4.熟悉直方图均衡化的基本原理、方法和实现。
二.实验原理(一)数字图像的灰度变换灰度变换是图像增强的一种经典而有效的方法。
灰度变换的原理是将图像的每一个像素的灰度值通过一个函数,对应到另一个灰度值上去从而实现灰度的变换。
常见的灰度变换有线性灰度变换和非线性灰度变换,其中非线性灰度变换包括对数变换和幂律(伽马)变换等。
1、线性灰度变换1)当图像成像过程曝光不足或过度,或由于成像设备的非线性和图像记录设备动态围太窄等因素,都会产生对比度不足的弊病,使图像中的细节分辨不清,图像缺少层次。
这时,可将灰度围进行线性的扩展或压缩,这种处理过程被称为图像的线性灰度变换。
对灰度图像进行线性灰度变换能将输入图像的灰度值的动态围按线性关系公式拉伸扩展至指定围或整个动态围。
2)令原图像f(x,y)的灰度围为[a,b],线性变换后得到图像g(x,y),其灰度围为[c,d],则线性灰度变换公式可表示为a y x fb y x f a b y x fc c a y x f ab c d d y x g <≤≤>⎪⎩⎪⎨⎧+---=),(),(),(,,]),([,),( (1)由(1)式可知,对于介于原图像f (x,y )的最大和最小灰度值之间的灰度值,可通过线性变换公式,一一对应到灰度围[c,d]之间,其斜率为(d-c)/(b-a);对于小于原图像的最小灰度值或大于原图像的最大灰度值的灰度值,令其分别恒等于变换后的最小和最大灰度值。
变换示意图如图1所示。
图1 线性灰度变换示意图当斜率大于一时,变换后的灰度值围得到拉伸,图像对比度得到提高;当斜率小于一时,变换后的灰度值围被压缩,最小与最大灰度值的差变小,图像对比度降低;当斜率等于一时,相当于对图像不做变换。
数字图像处理:图像的灰度变换(Matlab实现)
数字图像处理:图像的灰度变换(Matlab实现)(1)线性变换:通过建⽴灰度映射来调整源图像的灰度。
k>1增强图像的对⽐度;k=1调节图像亮度,通过改变d值达到调节亮度⽬的;0i = imread('theatre.jpg');i = im2double(rgb2gray(i));[m,n]=size(i);%增加对⽐度Fa = 1.25; Fb = 0;O = Fa.*i + Fb/255;figure(1), subplot(221), imshow(O);title('Fa = 1.25, Fb = 0, contrast increasing');figure(2),subplot(221), [H,x]=imhist(O, 64);stem(x, (H/m/n), '.');title('Fa = 1.25, Fb = 0, contrast increasing');%减⼩对⽐度Fa =0.5; Fb = 0;O = Fa.*i + Fb/255;figure(1), subplot(222),imshow(O);title('Fa = 0.5, Fb = 0, contrast decreasing');figure(2), subplot(222), [H,x] = imhist(O, 64);stem(x, (H/m/n), '.');title('Fa = 0.5, Fb = 0, contrast decreasing');%线性亮度增加Fa = 0.5; Fb = 50;O = Fa.*i + Fb/255;figure(1), subplot(223), imshow(O);title('Fa = 0.5, Fb = 50, brightness control');figure(2), subplot(223), [H,x]=imhist(O,64);stem(x, (H/m/n), '.');title('Fa = 0.5, Fb = 50, brightness control');%反相显⽰Fa = -1; Fb = 255;O = Fa.*i + Fb/255;figure(1), subplot(224), imshow(O);title('Fa = -1, Fb = 255, reversal processing');figure(2), subplot(224),[H,x]=imhist(O, 64);stem(x, (H/m/n), '.');title('Fa = -1, Fb = 255, reversal processing');(2)对数变换:增强低灰度,减弱⾼灰度值。
数字图像处理实验报告图像增强处理与几何变换
实验图像增强处理与几何变换一、实验目的利用Matlab图像处理工具箱中的函数实现图像点处理、空间域平滑和锐化处理、彩色图像处理、几何处理,巩固其原理与计算方法学习,深化课程理论认知。
二、实验内容1、图像点处理:灰度变换、直方图均衡化和直方图规定处理;2、图像均值滤波和中值滤波、图像锐化处理;3、图像几何变换处理;4、图像彩色合成和彩色变换处理;三、实验步骤1、图像点处理:灰度变换、直方图均衡化和直方图规定处理;1.1图像的灰度变换启用MATLAB,输入以下代码运行I= imread('cameraman-8.bmp','bmp');figure; subplot(2,2,1), imshow(I);%获取图像直方图subplot(2,2,2),imhist(I);[counts1,x1] = imhist(I);%观察Counts,x的值subplot(2,2,3),stem(x1,counts1);%图像灰度变换J=imadjust(I,[0.1 0.7],[0.0 0.9]);subplot(2,2,4), imshow (J);%对比灰度变换前后的图像及其直方图figure;subplot(2,3,1),imshow(I);subplot(2,3,2),imshow(J);subplot(2,3,4),imhist(I);subplot(2,3,5),imhist(J);[counts2,x2] = imhist(J);subplot(2,3,6), stem(x2,counts2);图 1.1.1图 1.1.21.2图像直方图均衡化启用MATLAB,输入以下代码运行I=imread('cameraman-8.bmp','bmp') ;%直方图均衡化处理J=histeq(I) ;%对比均衡化处理前后的图像及其直方图figure(1),subplot(2,2,1),imshow(I),subplot(2,2,2),imshow(J); figure(1),subplot(2,2,3),imhist(I),subplot(2,2,4),imhist(J);图 1.2 1.3直方图规定化启用MATLAB,输入以下代码运行I1=imread('TM5.bmp','bmp');I2=imread('TM3.bmp','bmp');%直方图规定化处理K1=histeq(I1,imhist(I2));%对比规定化处理前后的图像及其直方图figure;subplot(3,2,1),imshow(I1);subplot(3,2,2), imhist(I1);subplot(3,2,3),imshow(I2);subplot(3,2,4), imhist(I2);subplot(3,2,5),imshow(K1);subplot(3,2,6), imhist(K1);图 1.32、图像空间域平滑2.1 用均值滤波器实现图像空间域的平滑启用MATLAB,输入以下代码运行I=imread('cameraman-8.bmp','bmp');J=imnoise(I,'gaussian'); %添加高斯噪声K=imnoise(I,'salt & pepper'); %添加椒盐噪声M=imnoise(I,'speckle'); %添加乘性噪声H=ones(3,3)/9; %3*3的均值去噪模板%滤波去噪处理I1=imfilter(I,H);J1=imfilter(J,H);K1=imfilter(K,H);M1=imfilter(M,H) ;%对比线性滤波去噪处理前后的图像figure;subplot(2,4,1),imshow(I);title('原图');subplot(2,4,2),imshow(J); title('高斯噪声图像'); subplot(2,4,3),imshow(K); title('椒盐噪声图像'); subplot(2,4,4),imshow(M); title('乘性噪声图像'); subplot(2,4,6),imshow(J1); title('高斯噪声滤波图像'); subplot(2,4,7),imshow(K1); title('椒盐噪声滤波图像'); subplot(2,4,8),imshow(M1) ; title('乘性噪声滤波图像') ; 输出图像如下图 2.12.2 用中值滤波器实现图像空间域的平滑启用MATLAB,输入以下代码运行I=imread('cameraman-8.bmp');I1=imnoise(I,'gaussian');I2=imnoise(I,'salt & pepper',0.02);I3=imnoise(I,'speckle');%3×3中值滤波模板J=medfilt2(I,[3,3]);J1=medfilt2(I1,[3,3]);J2=medfilt2(I2,[3,3]);J3=medfilt2(I3,[3,3]);figure,subplot(2,4,1),imshow(I) ; title('原图') ;subplot(2,4,2),imshow(I1) ; title('添加高斯噪声') ;subplot(2,4,3),imshow(I2) ; title('添加椒盐噪声') ;subplot(2,4,4),imshow(I3) ; title('添加乘性噪声') ;subplot(2,4,6),imshow(J1) ;title('高斯噪声3*3中值滤波') ; subplot(2,4,7),imshow(J2) ;title('椒盐噪声3*3中值滤波') ; subplot(2,4,8),imshow(J3) ;title('乘性噪声3*3中值滤波') ;K=medfilt2(I, [5,5]); %5×5中值滤波模板K1=medfilt2(I1,[5,5]);K2=medfilt2(I2,[5,5]);K3=medfilt2(I3,[5,5]);figure;subplot(2,2,1),imshow(K); title('原图5*5中值滤波'); subplot(2,2,2),imshow(K1) ; title('高斯噪声5*5中值滤波') ; subplot(2,2,3),imshow(K2); title('椒盐噪声5*5中值滤波'); subplot(2,2,4),imshow(K3) ; title('乘性噪声5*5中值滤波'); 输出结果如下图 2.2.1图 2.2.22.3 图像空间域锐化启用MATLAB,输入以下代码运行I=imread('cameraman-8.bmp','bmp')H=fspecial('sobel')%用sobel算子做模板%锐化处理J=imfilter(I,H)%锐化处理前后图像对比figure,subplot(1,2,1),imshow(I),subplot(1,2,2),imshow(J); 输出图像如下图 2.33、图像几何变换3.1 缩放启用MATLAB,输入以下代码运行I=imread('cameraman-8.bmp', 'bmp') ;%放大图像J=imresize(I,2) ;%缩小图像K=imresize(I,0.5) ;%图像对比figure(1),subplot(),imshow(I),title('原图'),figure(2),subplot(),imshow(J),title('放大两倍的图'),figure(3),subplot(),imshow(K),title('缩小0.5倍的图') ;输出图像如下图 3.1.1 图3.1.2图 3.1.33.2旋转启用MATLAB,输入以下代码运行I=imread('cameraman-8.bmp', 'bmp') ;%旋转图像M=imrotate(I,45) ;%图像对比figure;subplot(1,2,1),imshow(I),subplot(1,2,2),imshow(M) ;输出图像如下图 3.24、彩色图像处理4.1彩色合成启用MATLAB,输入以下代码运行I=imread('peppers.bmp','bmp');J1=I; J2=I;J3=I; J4=I;J5=I;%改变J1、J2、J3、J4、J5中的波段次序,组合成新的波段合成J1(:,:,1)=I(:,:,2); J1(:,:,2)=I(:,:,3); J1(:,:,3)=I(:,:,1) ;J2(:,:,1)=I(:,:,1); J2(:,:,2)=I(:,:,3); J2(:,:,3)=I(:,:,2) ;J3(:,:,1)=I(:,:,2); J3(:,:,2)=I(:,:,1); J3(:,:,3)=I(:,:,3) ;J4(:,:,1)=I(:,:,3); J4(:,:,2)=I(:,:,2); J4(:,:,3)=I(:,:,1) ;J5(:,:,1)=I(:,:,3); J5(:,:,2)=I(:,:,1); J5(:,:,3)=I(:,:,2) ;%对比原图像I与新图像J1、J2、J3、J4、J5的彩色差异,理解假彩色合成figure,subplot(2,3,1),imshow(I),title('原图');subplot(2,3,2),imshow(J1),title('变换一') ;subplot(2,3,3),imshow(J2),title('变换二') ;subplot(2,3,4),imshow(J3),title('变换三') ;subplot(2,3,5),imshow(J4),title('变换四') ;subplot(2,3,6),imshow(J5),title('变换五');输出图像如下图4.1 4.2彩色变换启用MATLAB,输入以下代码运行I=imread('peppers.bmp','bmp');HSV=rgb2hsv(I) ;RGB=hsv2rgb(HSV) ;%对比彩色变换前后的图像figure;subplot(1,3,1),imshow(I),title('原图'),subplot(1,3,2),imshow(HSV),title('HSV图像'); subplot(1,3,3),imshow(RGB),title('RGB图像') ;输出结果如下图 4.2四、实验算法要点总结1、图像点处理直方图修正法通常分为直方图均衡化和直方图规定化两类2、图像均值滤波和中值滤波、图像锐化处理3、图像几何变换处理4、图像彩色合成和彩色变换处理通过映射函数将彩色图像或多光谱图像变换成新的三基色分量线性假彩色映射表示为:。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学号: 0000000000 姓名:0000000实验一灰度变换与空间域滤波一.实验目的及要求1.了解MATLAB的操作环境和图像处理工具箱Image Processing Toolbox的功能;2.加深理解图像灰度变换与空间域滤波概念和算法原理;3.掌握MATLAB中图像灰度变换与空间域滤的实现方法。
二、实验内容(一)研究以下程序,分析程序功能;输入执行各命令行,认真观察命令执行的结果。
利用MATLAB帮助文档熟悉程序中所使用函数的调用方法,改变有关参数,观察试验结果。
(可将每段程序保存为一个.m文件)1.图像及视频文件的基本操作(1)RGB彩色图像数据的读写操作clear all; %清除工作空间的所有变量,函数,和MEX文件close all; %关闭所有的Figure窗口%查看一幅RGB彩色图像文件的信息fileinfo = imfinfo('Fig0701_fruits.jpg')%暂停,阅读命令窗口中的结果,按空格键继续pause;%读取该图像I=imread('Fig0701_fruits.jpg');%显示图像imshow(I); title('Original RGB true color image');%查看图像像素信息,在图像上移动鼠标,注意左下角的信息impixelinfo;%暂停,按空格键继续pause;% 读取图像的颜色分量,并保存到二维矩阵变量中IR = I(:,:,1);IG = I(:,:,2);IB = I(:,:,3);%以灰度图像的方式显示各颜色分量figure, imshow(IR); title('R分量');figure, imshow(IG); title('G分量');figure, imshow(IB); title('B分量');%在图像左上角画一条5像素宽、100像素长的水平稍暗红线I(31:35,61:160,1)=200;I(31:35,61:160,2)=0;I(31:35,61:160,3)=0;%%显示处理结果figure, imshow(I); title('在图像背景中画红线');%将结果保存为tif格式图像文件imwrite(I,'fruits_bar.tif');%--------------------------------------------------------------------------------(2)索引图像与 RGB彩色图像之间的转换close all;clear all;%读入一幅RGB彩色图像IRGB=imread('Fig0701_fruits.jpg');%显示读入的RGB彩色图像figure, imshow(IRGB); title(' Original RGB image');%把RGB彩色图像转换为索引图像,为了比较差异,选择颜色表中的颜色数量为64 [Xind, map] = rgb2ind(IRGB,64);%显示转换后的索引图像figure, imshow(Xind, map); title('Converted to Indexd image');%将结果保存为tif格式图像文件imwrite(Xind,map,'fruits_indexed.tif');%读入一幅彩色索引图像并显示[Ind, map2]=imread('trees.tif');figure, imshow(Ind, map2); title(' Original Indexd image');%查看图像像素信息,在图像上移动鼠标,注意左下角的信息impixelinfo;%暂停,按空格键继续pause;%把索引图像转换为RGB彩色图像Irgb = ind2rgb(Ind, map2);%显示得到的彩色图像figure, imshow(Irgb); title('Converted to RGB image');%将结果保存为jpg格式图像文件imwrite(Irgb,'trees_rgb.jpg');%--------------------------------------------------------------------------(3)彩色图像转换为灰度图像和无彩色图像close all;clear all;%读取一幅RGB彩色图像Irgb=imread('Fig0701_fruits.jpg');%将其转换为灰度图像Igray1 = rgb2gray(Irgb);%显示转换结果figure, imshow(Irgb); title('Original RGB image');figure, imshow(Igray1); title('Converted gray image');%将上述RGB彩色图像转换为无彩(灰色)彩色图像,%即转换后的图像数据仍为RGB彩色图像格式%创建一个与真彩色图像转维数相同的uint8型矩阵Iachro=uint8(zeros(size(Irgb)));%Iachro (:,:,1)=Igray1;Iachro (:,:,2)=Igray1;Iachro (:,:,3)=Igray1;%显示转换的无彩色图片figure, imshow(Iachro); title('Converted achromatic color image'); %--------------------------------------------------------------------------------(4)灰度彩色图像转换为二值图像clc,clear, close all, close all;%读取一幅灰度图像并显示I = imread('rice.png');figure, imshow(I);%利用阈值分割把灰度图像转换为二值图像level = graythresh(I);bw = im2bw(I, level);%显示转换后的图像figure, imshow(bw); title('Converted binary image');%查看图像像素信息,在图像上移动鼠标,注意左下角的信息impixelinfo;%----------------------------------------------------------------------------(5)视频文件的读取及图像帧的抽取(选作)%采用参考图像实现运动目标分割% 该m文件使用参考图像实现背景减法% 用于移动对象分割clear all; close all;%构造一个videoreader类来读取avi文件,首先是'traffic.avi' , % 然后是‘highwayII_raw.avi'.videoObj = VideoReader('traffic.avi');numFrames =videoObj.NumberOfFrames;% 读取视频序列中的第一帧作为参考背景图像newframe = read(videoObj, 1);Iref = double(newframe);% 获取框架的高度、宽度和颜色组件的数量[height, width, numColor]=size(newframe);% 为阈值指定一个值Threh = 20;fg = zeros(height, width);% 为了避免消耗太多的内存,每次只读取一个帧for n = 1:numFramesnewframe = read(videoObj, n);% 计算新帧之间的绝对差值% 和参考帧IrefIdiff = abs(double(newframe) - Iref);%运动段,通过检测运动物体的运动轨迹fg = Idiff >Threh;if ( numColor == 3) % color imagefg = fg(:, :, 1) | fg(:, :, 2) | fg(:, :, 3);endpause(0.1);figure(1);subplot(1,2,1), imshow(newframe);title(strcat('Current Image, No. ', int2str(n)));subplot(1,2,2), imshow(fg);title('Segmented result using reference image');end %------------------------------------------------------------2. 图像灰度变换(1)使用工具箱函数 i madjust 的直接灰度变换clear all; close allI = imread('cameraman.tif');J = imadjust(I,[0 0.2],[0.5 1]);imshow(I)figure, imshow(J)[X,map] = imread('forest.tif');figure,imshow(X,map)I2 = ind2gray(X,map);J2 = imadjust(I2,[],[],0.5);figure,imshow(I2);figure, imshow(J2);J3 = imadjust(I2,[],[],1.5);figure, imshow(J3);help imadjust %显示imadjust()函数信息功能:灰度变换就是把原图像的像素灰度经过某个变换函数变换成新的图像灰度。
直接灰度变换法有线性、分段线性以及非线性变换。
(2)直方图均衡化% 清除MATLAB工作区的任何变量并关闭打开的图形窗口clear all; close all;% 读取示例图像,并将其存储在名为I的数组中,然后显示图像I = imread('Fig0310(b)(washed_out_pollen_image).tif');imshow(I);% 创建图像的直方图,并在一个新的图形窗口中显示它figure, imhist(I);% 直方图均衡化[I2,T] = histeq(I);% 在一个新的图形窗口中显示新的均衡图像I2figure, imshow(I2) ;% 创建一个直方图的均衡图像I2figure, imhist(I2);% 绘制变换曲线figure,plot((0:255)/255,T);% 将新调整后的图像I2写入名为“花粉image2.tif”的磁盘文件imwrite (I2, 'pollen_image2.tif');% 检查新写文件的内容imfinfo('pollen_image2.tif')%------------------------------------------------------------%功能:直方图均衡化的基本思想是将原始图像的直方图变换为均匀分布的形式,从而增加图像灰度的动态范围,达到增强图像对比度的效果。