数字图像的直方图规定化处理实验(matlab)
Matlab实现直方图规定化
Matlab实现直⽅图规定化直⽅图规定化算法分析1. 求出原图的累积概率分布2. 求出规定图的累积概率分布3. 求出原图中每⼀个灰度级累积概率与规定图的累积概率最接近的灰度级4. 根据第3步的⽅法将原图的灰度映射到标准图中距离最近的灰度值伪代码function outputimg = my_histspec(A,B)% 灰度图的直⽅图规定化% 输⼊:A是读⼊的原图,B是读⼊的规定化的标准图% 输出:outputimg是将A规定化到B之后的图像[HA,WA] = 原图的⼤⼩[HB,WB] = 标准图的⼤⼩统计原图灰度级频数统计标准图灰度级频数计算原图灰度级概率计算标准图灰度级概率计算原图灰度级累积概率分布计算标准图灰度级累积概率分布%求原图和标准图的映射关系,找到两个累积概率最接近的灰度级遍历原图的每个灰度级value{j} = 求标准图当前灰度级累积概率与原图所有灰度级累积概率之差的绝对值[temp{j},index(j)] = index中存的是vlaue中最⼩值的下标outputimg = 开辟⼀个和原图⼤⼩⼀致的新矩阵存放规定化后的图像遍历outputimgoutputimg(i,j) = 根据映射关系为每⼀个新矩阵的像素点赋灰度值转换outputimg成uint8数据类型end代码function outputimg = my_histspec(A,B)% 灰度图的直⽅图规定化% 输⼊:A是读⼊的原图,B是读⼊的规定化的标准图% 输出:outputimg是将A规定到B之后的图像[HA,WA] = size(A);[HB,WB] = size(B);PA = imhist(A) / (HA * WA);PB = imhist(B) / (HB * WB);%求累积概率分布for i = 2 : 256PA(i) = PA(i - 1) + PA(i);PB(i) = PB(i - 1) + PB(i);end%求原图和映射图的映射关系,找到两个累积直⽅图距离最近的点for j = 1:256value{j} = abs(PB - PA(j));[temp{j},index(j)] = min(value{j}) %index中存的是最⼩值的下标,temp中存的是最⼩值endoutputimg = zeros(HA, WA);for i = 1:HAfor j = 1:WAoutputimg(i,j) = index(A(i,j) + 1)-1;endendoutputimg = uint8(outputimg);end实验结果%调⽤⽰例:A = imread('pout.tif');B = imread('coins.png');C = my_histspec(A,B);subplot(2,3,1);imshow(A);title('原图');subplot(2,3,2);imshow(B);title('标准图');subplot(2,3,3);imshow(C);title('匹配到标准图后');subplot(2,3,4);imhist(A);title('原图直⽅图');subplot(2,3,5);imhist(B);title('标准图直⽅图');subplot(2,3,6);imhist(C);title('匹配到标准图后直⽅图');实验分析直⽅图均衡化是直⽅图规定化的特例,理想状态下原图直⽅图均衡化和标准图均衡化后对应的直⽅图应该是相等的,通过求得原图累积概率和标准图累积概率最接近的灰度值映射,最后的效果是原图的直⽅图和标准图的直⽅图接近。
绘制数字图像灰度直方图实验报告matlab实现
绘制数字图像灰度直方图实验报告matlab实现数字图像处理实验报告实验一绘制直方图学号__________________________ 姓名__________________________ 日期 __________________________实验一绘制直方图、实验内容1、编程绘制数字图像的直方图。
2、直方图均衡处理。
二、实验步骤1、设计思想或者流程图。
灰度直方图是将数字图像的所有像素,按照灰度值的大小,统计其所出现的频度。
通常,灰度直方图的横坐标表示灰度值,纵坐标为半个像素个数, 也可以采用某一灰度值的像素数占全图像素数的百分比作为纵坐标。
直方图均衡方法的基本原理是:对在图像中像素个数多的灰度值(即对画面起主要作用的灰度值)进行展宽,而对像素个数少的灰度值(即对画面不起主要作用的灰度值)进行归并。
从而达到清晰图像的目的。
2、源程序并附上注释。
clear all9一,图像的预处理,读入彩色图像将其灰度化PS=imread(J; % 读入JPG彩色图像文件imshow(PS)% 显示出来title(' 输入的彩色JPG图像')imwrite(rgb2gray(PS),”); % 将彩色图片灰度化并保存PS=rgb2gray(PS); % 汇,绘制直方图[m, n]=size(PS); %GP=zeros(1,256); %量for k=0:255GP(k+1)=le ngth(fi nd(PS==k))/(m* n); 概率,将其存入GP中相应位置灰度化后的数据存入数组测量图像尺寸参数预创建存放灰度出现概率的向% 计算每级灰度出现的v1.0可编辑可修改endfigure,bar(0:255,GP,'g') % title(' 原图像直方图')xlabel('灰度值')ylabel('出现概率')%E,直方图均衡化S仁zeros(1,256);for i=1:256for j=1:iS1(i)=GP(j)+S1(i); % endendS2=rou nd((S1*256)+; % for i=1:256GPeq(i)=sum(GP(fi nd(S2==i))); % 概率endfigure,bar(0:255,GPeq,'b') % title(' 均衡化后的直方图')xlabel('灰度值') ylabel('出现概率')咖,图像均衡化PA=PS;for i=0:255PA(fi nd(PS==i))=S2(i+1); % 的灰度值赋给这个像素绘制直方图计算Sk将Sk归到相近级的灰度计算现有每个灰度级出现的显示均衡化后的直方图将各个像素归一化后endfigure,imshow(PA) %title(' 均衡化后图像')imwrite(PA,”);3、程序运行结果比较。
数字图像处置MATLAB程序
第一部份数字图像处置实验一图像的点运算实验直方图一.实验目的1.熟悉matlab图像处置工具箱及直方图函数的利用;2.明白得和把握直方图原理和方式;二.实验设备机一台;。
三.程序设计在matlab环境中,程序第一读取图像,然后挪用直方图函数,设置相关参数,再输出处置后的图像。
I=imread('');%读取图像subplot(1,2,1),imshow(I) %输出图像title('原始图像') %在原始图像中加题目subplot(1,2,2),imhist(I) %输出原图直方图title('原始图像直方图') %在原图直方图上加题目四.实验步骤1. 启动matlab双击桌面matlab图标启动matlab环境;2. 在matlab命令窗口中输入相应程序。
书写程序时,第一读取图像,一样挪用matlab自带的图像,如:cameraman图像;再挪用相应的直方图函数,设置参数;最后输出处置后的图像;3.阅读源程序并明白得含义;4.运行,观看显示结果;5.终止运行,退出;五.实验结果观看图像matlab环境下的直方图散布。
(a)原始图像 (b)原始图像直方图六.实验报告要求一、给出实验原理进程及实现代码;二、输入一幅灰度图像,给出其灰度直方图结果,并进行灰度直方图散布原理分析。
实验灰度均衡一.实验目的1.熟悉matlab图像处置工具箱中灰度均衡函数的利用;2.明白得和把握灰度均衡原理和实现方式;二.实验设备机一台;;三.程序设计在matlab环境中,程序第一读取图像,然后挪用灰度均衡函数,设置相关参数,再输出处置后的图像。
I=imread('');%读取图像subplot(2,2,1),imshow(I) %输出图像title('原始图像') %在原始图像中加题目subplot(2,2,3),imhist(I) %输出原图直方图title('原始图像直方图') %在原图直方图上加题目a=histeq(I,256); %直方图均衡化,灰度级为256subplot(2,2,2),imshow(a) %输出均衡化后图像title('均衡化后图像') %在均衡化后图像中加题目subplot(2,2,4),imhist(a) %输出均衡化后直方图title('均衡化后图像直方图') %在均衡化后直方图上加题目四.实验步骤1. 启动matlab双击桌面matlab图标启动matlab环境;2. 在matlab命令窗口中输入相应程序。
东北大学matlab计算机图像处理实验报告
计算机图像处理实验报告学院:信息学院班级:姓名:学号:实验内容:数字图像处理1、应用MATLAB语言编写显示一幅灰度图像、二值图像、索引图像及彩色图像的程序,并进行相互之间的转换;(1)、显示一副真彩RGB图像代码:I=imread('mikasa.jpg');>>imshow(I);效果:(2)、RGB转灰度图像代码:graycat=rgb2gray(I);>> subplot(1,2,1);>> subimage(I);>> subplot(1,2,2);>> subimage(graycat);效果:(3)、RGB转索引图像代码:[indcat,map]=rgb2ind(I,0.7);>> subplot(1,2,1);>> subimage(I);>> subplot(1,2,2);>> subimage(indcat,map);效果:(4)、索引图像转RGB代码:I1=ind2rgb(indcat,map);>>subplot(1,2,1);>>subimage(indcat,map);>>subplot(1,2,2);>>subimage(I1);效果:(5)、索引转灰度图像代码:i2gcat=ind2gray(indcat,map);>>subplot(1,2,1);>>subimage(indcat,map);>>subplot(1,2,2);>>subimage(i2gcat);效果:(6)、灰度转索引图像代码:[g2icat,map]=gray2ind(graycat,64);>>subplot(1,2,1);>>subimage(graycat);>>subimage(g2icat,map);效果:(7)、RGB转二值图像代码:r2bwcat=im2bw(I,0.5);>>subplot(1,2,1);>>subimage(I);>>subplot(1,2,2);>>subimage(r2bwcat);效果:(8)灰度转二值图像代码:g2bwcat=im2bw(graycat,0.5); subplot(1,2,1);>>subimage(graycat);>>subplot(1,2,2);>>subimage(g2bwcat);效果:(9)、索引转二值图像代码:>> i2bwcat=im2bw(indcat,map,0.7);>>subimage(indcat,map);>>subplot(1,2,2);>>subimage(i2bwcat);效果:2、应用MATLAB工具箱演示一幅图像的傅里叶变换、离散余弦变换,观察其频谱图。
MATLAB图像直方图及均衡化处理报告
电信信息工程3班卢国梁200730213246 23 1、用matlab作出图像的直方图clear;I=imread('2222.jpg');I=rgb2gray(I);add=[];tab1=zeros(1,256);for n=0:255X=I==n;add=[add;sum(sum(X))]; end;[a,b]=size(I);final=add/(a*b);figure;stem(final,'Marker','none'); figure(2)imshow(I)2、用matlab实现图像的直方图均衡化均衡化前均衡化后程序:clear;I=imread('2222.jpg');I=rgb2gray(I);I2=I;add=[];add1=[];tab1=zeros(1,256);tab2=zeros(1,256);for n=0:255X=I==n;add=[add;sum(sum(X))]; end;[a,b]=size(I);final=add/(a*b);for n=1:256for i=1:ntab1(n)=tab1(n)+final(i);end;end;tab1=tab1*255;tab2=round(tab1); for n=1:afor m=1:bfor t=0:255if I(n,m)==tI2(n,m)=tab2(t+1);end;end;end;end;for n=0:255X1=I2==n;add1=[add1;sum(sum(X1))]; end;[a1,b1]=size(I2);final1=add1/(a1*b1);figure;stem(final,'Marker','none');figure(2)imshow(I2);figure(3)stem(final1,'Marker','none')均衡化后直方图实验心得体会:这次先是把老师的课件都看了一次,知道了各种方法,包括多幅图像去噪声啊,中值滤波啊等等,看了一些参考的程序,请教了同学,就写了这么几个程序,中间遇到了一些问题,比如在均衡化的时候判断的时候用错了序列,结果图像处理之后变得更加难看,思量着不可能越处理越糟糕,就里里外外看了好久的程序,毕竟是当局者,看不出来,请教了同学帮忙看错误,才找出了那个错误:if I(n,m)==add(t);I2(n,m)=tab2(t+1);后来改为if I(n,m)==t;I2(n,m)=tab2(t+1);图像也好看很多了!。
数字图象处理实验报告《matlab基本操作 》
武汉工程大学
《数字图像处理》实验报告2
专业班级
实验时间
学生学号
实验地点
学生姓名
指导教师
实验项目
数字图像基本操作
实验类别
基础性
实验学时
%读入原始图像
f=imread('pollen.tif');
%显示原始图像
subplot(3,2,1);imshow(f);
title('original image');
subplot(3,2,2);imhist(f);
title('original image histogram');
%将原始图像均衡化,目的是与后面的规定化做对比
subplot(121),imshow(a);
title('原图为:');
subplot(122),imshow(c); %显示处理后的图像
title('均衡化后的图为:');
通过以上变换后总的效果为:
%读入原始图像
f=imread('pollen.tif');
%显示原始图像
iptsetpref('ImshowAxesVisible','on')
c2=A2*(1/((2*pi)^0.5)*sig2); %设置c2=A2*(1/sqrt(2*pi)*sig)),即高斯函数的系数部分;
k2=2*(sig2^2); %设置指数部分的分母,即(1/2*sig^2),同上
《数字图像处理(实验部分)》实验3点运算(直方图均衡化)
《数字图像处理(实验部分)》教案实验三:点运算(直方图均衡化)1.实验目的1.掌握MATLAB 的基本操作。
2.了解数字图像处理在MATLAB中的基本处理过程。
3.学习点运算的原理,观察算法处理结果2.实验设备2.1.PC 兼容机一台;操作系统为WindowsWindowsXP。
2.2.数字图像处理开发环境:MATLAB软件3.实验原理直方图均衡化的算法原理4.实验步骤.1 打开MA TLAB开发环境.2点击MA TLAB窗口上File菜单,选择New-〉M—File,在弹出的Edit编辑器内输入如下程序:%I=imread('pout.tif'); % 读取MA TLAB自带的potu.tif图像I=imread('IMG0050A.jpg'); % 可改为读取MATLAB自带的potu.tif图像I=rgb2gray(I);figure(1);subplot(2,3,1),imshow(I);title('原图');subplot(2,3,2),imhist(I);[J,T]=histeq(I,256); % 图像灰度扩展到0~255,有256个灰度级subplot(2,3,3),imshow(J);title('均衡1图');subplot(2,3,4),imhist(J);%figure,plot((0:255)/255,T); % 转移函数的变换曲线J=histeq(I,32);% 图像灰度扩展到0~255,但是只有32个灰度级subplot(2,3,5),imshow(J); title('均衡2图');subplot(2,3,6),imhist(J);.3将该程序保存,并点击工具栏中Run 按钮,程序会自动运行,并显示出结果。
广 .4 观察处理结果5. 实验结果 01002000010020000100200均衡2后图6.问题与思考总结MATLAB开发环境在使用上的特点,掌握其在实验中使用方法。
数字图像的直方图规定化处理实验
XX 大学实验报告
(一) 掌握数字图像的直方图规定化处理的算法和方法。
(二) 熟悉数字图像的直方图规定化处理的算法原理。
按照实验内容及参考程序,独立完成此次实验,记下不懂的知识点,查阅资料或者向老 师咨询。
直方图规定化是用于产生处理后有特殊直方图的图像方法。
学院:
专业: 班级: 姓名 实验时间 实验项目名称
实验二:数字图像的直方图规定化处理
令
p r (r )和Pz (z )分别为原始图像和期望图像的灰度概率密度函数。
和期望图像均作直方图均衡化处理,应有:
r
s T (r ) 0 p r (r )dr ,V G (Z )
对原始图像
z 0
P z
(z )dz ,z
G
1
(V)
由于都是作直方图均衡化处理,所以处理后的原图像的灰度概率密度函数
p S (s )及理
想图像的灰度概率密度函数 P V (V )是相等的。
因此,可以用变换后的原始图像灰度级
S
代替上式中的V, 即Z G 1[T (r )]。
利用此式可以从原始图像得到希望的图像灰度级。
对离散图像,有
P Z (ZJ
虹,V i G (乙)^P z (Z i ), Z i
G 1(S i ) G 1[T(r i )]
n
i 0
综上所述,数字图像的直方图规定化就是将直方图均衡化后的结果映射到期望的理想直 方图上,使图像按人的意愿去变换。
数字图像的直方图规定的算法如下:
(一)将原始图像作直方图均衡化处理, 求出原图像中每一个灰度级 r i 所对应的变
学号 指导教师
实验组 成绩。
(精品)数字图像处理实验报告--直方图规定化
数字图像处理实验报告直方图匹配规定化直方图均衡化能够自动增强整个图像的对比度,但它的具体增强效果不容易控制,处理的结果总是得到全局均匀化的直方图。
实际上有时需要变换直方图,使之成为某个特定的形状,从而有选择地增强某个灰度值范围内的对比度。
这时可以采用比较灵活的直方图规定化。
一般来说正确地选择规定化的函数可以获得比直方图均衡化更好的效果。
所谓直方图规定化,就是通过一个灰度映像函数,将原灰度直方图改造成所希望的直方图。
所以,直方图修正的关键就是灰度映像函数。
直方图匹配方法主要有3个步骤(这里设M和N分别为原始图和规定图中的灰度级数,且只考虑N≤M的情况):(1) 如同均衡化方法中,对原始图的直方图进行灰度均衡化:(2) 规定需要的直方图,并计算能使规定的直方图均衡化的变换:(3) 将第1个步骤得到的变换反转过来,即将原始直方图对应映射到规定的直方图,也就是将所有pf(fi)对应到pu(uj)去。
一、A图直方图规定B图Matlab程序:%直方图规定化clear allA=imread('C:\Users\hp\Desktop\A.tif'); %读入A图像imshow(A) %显示出来title('输入的A图像')%绘制直方图[m,n]=size(A); %测量图像尺寸B=zeros(1,256); %预创建存放灰度出现概率的向量for k=0:255B(k+1)=length(find(A==k))/(m*n); %计算每级灰度出现的概率,将其存入B中相应位置endfigure,bar(0:255,B,'g'); %绘制直方图title('A图像直方图')xlabel('灰度值')ylabel('出现概率')axis([0,260,0,0.015])C=imread('C:\Users\hp\Desktop\B.tif');%读入B图像imshow(C) %显示出来title('输入的B图像')%绘制直方图[m,n]=size(C); %测量图像尺寸D=zeros(1,256); %预创建存放灰度出现概率的向量for k=0:255D(k+1)=length(find(C==k))/(m*n); %计算每级灰度出现的概率,将其存入D中相应位置endfigure,bar(0:255,D,'g'); %绘制直方图title('B图像直方图')xlabel('灰度值')ylabel('出现概率')axis([0,260,0,0.015])S1=zeros(1,256);for i=1:256for j=1:iS1(i)=D(j)+S1(i); %计算B灰度图累计直方图endendcounts=Bfigure,bar(0:255,counts,'r')title('A图像直方图 ')S2=zeros(1,256);for i=1:256for j=1:iS2(i)=counts(j)+S2(i);endend; %"累计"规定化直方图%对比直方图,找到相差最小的灰度级for i=1:256for j=1:255if S1(j)<=S2(i)&S1(j+1)>=S2(i)if abs(S1(j)-S2(i))<=abs(S1(j+1)-S2(i)) T(i)=j;else T(i)=j+1;endendendend%确定变换关系,重组直方图H=zeros(1,256);H(1)=S2(1);for i=2:255if T(i-1)>0for k=(T(i-1)+1):T(i)H(i)=H(i)+D(k);endelse H(i)=0;endendfigure,bar(0:255,H,'g') %显示规定化后的直方图title('A规定B后的直方图')xlabel('灰度值')ylabel('出现概率')axis([0,260,0,0.6])%显示规定图PA=C; %将各个像素归一化后的灰度值赋给这个像素for i=1:mfor j=1:nfor k=2:255if T(k-1)<=C(i,j)&C(i,j)<=T(k)PA(i,j)=k;break;endendendendfigure,imshow(PA) %显示规定化后的图像title('A规定B后图像')imwrite(PA,'guidinghua.bmp');二、用已知直方图规定A图规定灰度为[zeros(1,49),0.3,zeros(1,49),0.1,zeros(1,49),0.2,zeros(1,49),0.1,zeros(1,49 ),0.2,zeros(1,49),0.1]Matlab程序:clear allA=imread('C:\Users\hp\Desktop\B.tif'); %读入A图像imshow(A) %显示出来title('输入的A图像')%绘制直方图[m,n]=size(A); %测量图像尺寸B=zeros(1,256); %预创建存放灰度出现概率的向量for k=0:255B(k+1)=length(find(A==k))/(m*n); %计算每级灰度出现的概率,将其存入B中相应位置endfigure,bar(0:255,B,'g'); %绘制直方图title('A图像直方图')xlabel('灰度值')ylabel('出现概率')axis([0,260,0,0.015])S1=zeros(1,256);for i=1:256for j=1:iS1(i)=B(j)+S1(i); %计算原灰度图累计直方图endendcounts=[zeros(1,49),0.3,zeros(1,49),0.1,zeros(1,49),0.2,zeros(1,49),0.1,zer os(1,49),0.2,zeros(1,49),0.1];%规定化直方图figure,bar(1:300,counts,'r')title('规定化直方图')S2=zeros(1,256);for i=1:256for j=1:iS2(i)=counts(j)+S2(i);endend; %"累计"规定化直方图%对比直方图,找到相差最小的灰度级for i=1:256for j=1:256if S1(j)<=S2(i)&S1(j+1)>=S2(i)if abs(S1(j)-S2(i))<=abs(S1(j+1)-S2(i)) T(i)=j;else T(i)=j+1;endendendend%确定变换关系,重组直方图H=zeros(1,256);H(1)=S2(1);for i=2:256if T(i-1)>0for k=(T(i-1)+1):T(i)H(i)=H(i)+B(k);endelse H(i)=0;endendfigure,bar(0:255,H,'g') %显示规定化后的直方图title('规定化后的直方图')xlabel('灰度值')ylabel('出现概率')axis([0,260,0,0.6])%显示规定图PA=A; %将各个像素归一化后的灰度值赋给这个像素for i=1:mfor j=1:nfor k=2:256if T(k-1)<=A(i,j)&A(i,j)<=T(k)PA(i,j)=k;break;endendendendfigure,imshow(PA) %显示规定化后的图像title('规定化后图像')imwrite(PA,'guidinghua.bmp');。
matlab实验(直方图均衡化、频域锐化、空域锐化)
实验一直方图均衡化一、实验目的掌握基本的图象增强方法,观察图象增强的效果,加深对灰度直方图及直方图均衡化的理解,掌握直方图均衡化方法。
二、实验内容将一张彩色图片转换成灰色图片,做出均衡化后的直方图,并将灰度图和均衡化后的图片对比。
三、实验原理直方图均衡方法的基本原理是:对在图像中像素个数多的灰度值(即对画面起主要作用的灰度值)进行展宽,而对像素个数少的灰度值(即对画面不起主要作用的灰度值)进行归并。
从而达到清晰图像的目的。
四、实验代码及结果clear all;f=imread('14.jpg');%读入灰色图像imwrite(rgb2gray(f),'14Gray.bmp'); %将彩色图片灰度化并保存f1=imread('14Gray.bmp');g=histeq(f1,250);%利用histep()函数对灰色图像进行直方图均衡化处理subplot(121);imshow(f1);title('灰色图像');%显示生成灰色图像subplot(122);imshow(g);title('直方图均衡化处理');%显示生成均衡化以后的图像五、实验结果分析利用imhist()函数对两幅图像的灰度范围进行分析,根据下图可知,灰色图像的灰度范围相对来说非常狭窄,图像质量比较差。
而经过直方图均衡化处理后,图像的对比度及平均亮度明显提高,直方图在整个亮度标度上明显扩展,图像质量明显提高。
实验二空域锐化一、实验目的理解图象锐化的概念,掌握常用空域锐化增强技术。
加深理解和掌握图像锐化的原理和具体算法,理解图象锐化增强的处理过程和特点。
二、实验内容利用一阶微分锐化增强,实现Roberts算子的锐化处理。
观察处理前后图像效果,分析实验结果和算法特点。
三、实验原理Roberts算子是突出图像的细节或者是增强被模糊了的细节。
因此要对图像实现锐化处理,可以用空间微分来完成,但是,这样图像的微分增强了边缘和其他的突变(如噪声)并削弱了灰度变化缓慢区域。
实验一Matlab语言和数字图像处置大体操作
实验一Matlab语言及数字图像处置大体操作一、实验目的一、学习MATLAB语言的大体用法;二、把握MATLAB语言中图像数据与信息的读取方式;3、把握在MATLAB中绘制灰度直方图的方式;4、把握灰度直方图的均衡化的方式;五、利用大体灰度变换对图像进行增强二.实验环境及开发工具Windws XP、三.实验原理及方式1、验证MATLAB中图像数据的读写及显示(1)imreadimread函数用于读入各类图像文件,其一样的用法为[X,MAP]=imread(‘filename’,‘fmt’)其中,X,MAP别离为读出的图像数据和颜色表数据,fmt为图像的格式,filename 为读取的图像文件(能够加上文件的途径)。
(2)imwriteimwrite函数用于输出图像,其语法格式为:imwrite(X,map,filename,fmt)依照fmt指定的格式将图像数据矩阵X和调色板map 写入文件filename。
(3)imfinfoimfinfo函数用于读取图像文件的有关信息,其语法格式为imfinfo(filename,fmt)imfinfo函数返回一个结构info,它反映了该图像的各方面信息,其要紧数据包括:文件名(途径)、文件格式、文件格式版本号、文件的修改时刻、文件的大小、文件的长度、文件的宽度、每一个像素的位数、图像的类型等。
(4)MATLAB中图像文件的显示imshowimshow函数是最经常使用的显示各类图像的函数,其语法如下:imshow(X,map)其中X是图像数据矩阵,map是其对应的颜色矩阵,假设进行图像处置后不明白图像数据的值域能够用[]代替map。
需要显示多幅图像时,能够利用figure语句,它的功能确实是从头打开一个图像显示窗口。
二、验证图像对照度增强函数Imadjust若是原图像f(x,y)的灰度范围是[m,M],咱们希望调整后的图像g(x,y)的灰度范围是[n,N],那么下述变换,,就能够够实现这一要求。
数字图像处理实验报告(matlab)
学院:自动化学院班级:电081班姓名:***学号:********2011年10月实验一直方图均衡化一、实验目的:1. 熟悉图像数据在计算机中的存储方式;2. 掌握图像直方图均衡化这一基本处理过程。
二、实验条件:PC微机一台和MATLAB软件。
三、实验内容:1.读入图像数据到内存中,并显示读入的图像;2.实现直方图均衡化处理,显示处理前后图像的直方图。
3.显示并保存处理结果。
四、实验步骤:1.打开Matlab编程环境;2.获取实验用图像。
用’imread’函数将图像读入Matlab;用’imshow’函数显示读入的图像。
3.获取输入图像的直方图:用’imhist’函数处理图像。
4.均衡化处理:用’histeq’函数处理图像即可。
5.获取均衡化后的直方图并显示图像:用’imhist’和’imshow’函数。
6.保存实验结果:用’imwrite’函数处理。
五、实验程序及结果:1、实验程序subplot(6,2,1);i=imread('test1-1.jpg');imhist(i);title('test1-1 hist');subplot(6,2,2);i=im2double(i);imshow(i);title('test1-1 Ô-ͼÏñ');subplot(6,2,3);s=histeq(i);imhist(s);title('test1-1 balancedhist');subplot(6,2,4);imshow(s);title('test1-1 ¾ùºâ»¯ºóµÄͼÏñ');subplot(6,2,5);i=imread('test1-2.jpg');imhist(i);title('test1-2 hist');subplot(6,2,6);i=im2double(i);imshow(i);title('test1-2 Ô-ͼÏñ');subplot(6,2,7);s=histeq(i);imhist(s);title('test1-2 balancedhist'); subplot(6,2,8);imshow(s);title('test1-2 ¾ùºâ»¯ºóµÄͼÏñ');subplot(6,2,9);i=imread('test1-3.jpg');imhist(i);title('test1-3 hist');subplot(6,2,10);i=im2double(i);imshow(i);title('test1-3 Ô-ͼÏñ');subplot(6,2,11);s=histeq(i);imhist(s);title('test1-3 balancedhist'); subplot(6,2,12);imshow(s);title('test1-3 ¾ùºâ»¯ºóµÄͼÏñ');2、实验结果test1-1 hist050100150200250test1-1 原图像test1-1 balancedhist00.10.20.30.40.50.60.70.80.91test1-1 均衡化后的图像test1-2 hist050100150200250test1-2 原图像test1-2 balancedhist00.10.20.30.40.50.60.70.80.91test1-2 均衡化后的图像0test1-3 hist050100150200250test1-3 原图像test1-3 balancedhist00.10.20.30.40.50.60.70.80.91test1-3 均衡化后的图像六、实验思考1.数字图像直方图均衡化之后直方图为什么不是绝对平坦的?答:直方图均衡化是将一已知灰度概率密度分布的图像,经过某种变换,变成一幅具有均匀灰度概率密度分布的新图像。
数字图像处理实验一-直方图均衡化
实验一数字图像处理编程实习(设计性实验)一、实验名称:数字图像处理编程实验一之灰度直方图统计与均衡化。
二、实验目的和要求:本设计性实验专为印刷工程专业的《数字图像处理》课程设计。
熟悉Matlab与Visual C++编程环境,实现对输入图像进行灰度直方图均衡化处理。
通过本实验教学环节,可以使学生对图像文件格式、图像文件的读写、图像处理程序的基本结构、处理方式和编程基本方法有进一步的认识,获得对图像处理原理和编程方法的进一步认识。
实验的基本要求是:利用Matlab或Visual C++编程环境编制图像处理程序,对一幅灰度图像进行灰度直方图统计与均衡化处理。
三、实验基本内容:1.图像处理程序用户界面设计;2.灰度直方图统计与均衡化;四、实验设备及环境:1.计算机;2.Matlab与Visual C++编程环境。
五、实验原理:1、数字图像直方图均衡化处理原理:A)图像直方图统计:根据图像的灰度等级统计该灰度等级的象素个数;B)图像直方图均衡化:直方图均衡化是将原图像通过某种变换,得到一幅灰度直方图为均匀分布的新图像的方法。
具体为:1)统计图像直方图;2)计算归一化的累计直方图;3)计算均衡后的直方图sk=int[(N-1)tk+0.5];4)根据均衡后的直方图将图像的每一个像素都映射到新的直方图上;六、实验具体要求:1.用户界面设计:用户界面可以自由设计,但应包括如下物件:窗体、菜单或命令按钮、图像显示框。
程序功能:图像像素行列数输入、打开图像、图像灰度直方图统计、图像灰度直方图均衡化、图像存储、退出。
七、对程序和实验报告的要求:1.将编制完成的Matlab或Visual C++程序作为附件交给实习老师;2.实验报告:所要求具有下列内容:图像处理程序编制的总体方案;程序用户界面的设计思路;图像处理算法;遇到的问题和解决过程;结果分析。
八、附件:附:实习示例程序:%《数字图像处理》课程实习%图像文件直方图统计显示实验程序by 武汉大学印刷与包装系易尧华I=imread('C:\Documents and Settings\hapxqpy\桌面\test-yy.bmp'); %将图像文件testimage.bmp的数据读入并赋值给变量I;figure(1); %新建用于图像显示的窗口;imshow(I); %在窗口中显示图像;figure(2); %新建用于图像直方图的窗口;imhist(I); %在窗口中显示图像直方图;J=histeq(I); %图像直方图均衡化处理;figure(3); %新建用于图像直方图的窗口;imshow(J); %在窗口中显示均衡化后的图像;figure(4); %新建用于显示均衡化后的图像直方图;imhist(J); %在窗口中显示均衡化后图像直方图;。
数字图象处理实验要求(应用MATLAB语言实现)
数字图象处理实验要求(应用MA TLAB语言实现)实验一数字图象的读取与灰度直方图一、实验目的1、初步了解与掌握MA TLAB语言的基本用法;2、掌握MA TLAB语言中图象数据与信息的读取方法;3、掌握在MA TLAB中绘制灰度直方图的方法,了解灰度直方图的均衡化的方法。
二、实验原理MA TLAB是集数值计算,符号运算及图形处理等强大功能于一体的科学计算语言。
作为强大的科学计算平台,它几乎能够满足所有的计算需求。
MA TLAB软件具有很强的开放性和适用性。
在保持内核不便的情况下,MA TLAB可以针对不同的应用学科推出相应的工具箱(toolbox)。
目前,MA TLAB已经把工具箱延伸到了科学研究和工程应用的诸多领域,诸如数据采集、概率统计、信号处理、图像处理和物理仿真等,都在工具箱(Toolbox)家族中有自己的一席之地。
在实验中我们主要用到MA TLAB 提供图象处理工具箱(Image Processing Toolbox)。
1、MATLAB与数字图像处理MA TLAB全称是Matrix Laboratory(矩阵实验室),一开始它是一种专门用于矩阵数值计算的软件,从这一点上也可以看出,它在矩阵运算上有自己独特的特点。
实际上MA TLAB 中的绝大多数的运算都是通过矩阵这一形式进行的。
这一特点也就决定了MA TLAB在处理数字图像上的独特优势。
理论上讲,图像是一种二维的连续函数,然而在计算机上对图像进行数字处理的时候,首先必须对其在空间和亮度上进行数字化,这就是图像的采样和量化的过程。
二维图像进行均匀采样,就可以得到一幅离散化成M×N样本的数字图像,该数字图像是一个整数阵列,因而用矩阵来描述该数字图像是最直观最简便的了。
而MA TLAB的长处就是处理矩阵运算,因此用MA TLAB处理数字图像非常的方便。
MA TLAB支持五种图像类型,即索引图像、灰度图像、二值图像、RGB图像和多帧图像阵列;支持BMP、GIF、HDF、JPEG、PCX、PNG、TIFF、XWD、CUR、ICO等图像文件格式的读,写和显示。
基于Matlab的图像直方图规定化的实现
1 Matlab程序流程图
2是girl的原图,图
是标准直方图,图5是
图匹配到标准后的直方图。
视觉上看两幅图是有明显变化的,两幅图的直方图也有比较
图2 girl原图
图3 girl原图的直方图
图4 标准直方图
图5 girl匹配到标准的图
图6 girl匹配到标准的直方图
直方图规定化能够产生特定的直方图,对图像中需要研究的灰度进行增强。
仿真结果表明直方图规定化能够有选择地对需要研究的灰度范围进行对比度增强,得到期望的增
图像增强技术中的直方图规定化技术是应用范围非常广的技术,在其他复杂图像处理技术(如分割技术)中也起到了比较重要的作用。
许多新技术、新思想的提出与新的应用方向的出现给该技术带来了蓬勃生机,使得该技术不断推
参考文献
基于直方图的高效图像增强算法研究
杭州电子科技大学,2014.
李庆.数字图像处理及MATLAB
,2010.
.数字图像处理[M].武汉:。
数字图像直方图规定化处理实验(matlab)
.XX 大学实验报告学院:专业: 班级:~~~ 学号 ~~~~ 实验组 ~~~实验时间 ~~~~~指导教师~~~成绩实验项目名称实验二:数字图像的直方图规定化办理实验(一)掌握数字图像的直方图规定化办理的算法和方法。
目(二)熟习数字图像的直方图规定化办理的算法原理。
的 实验 依据实验内容及参照程序, 独立达成此次实验,记下不懂的知识点,查阅资料或许向老 要 师咨询。
求直方图规定化是用于产生办理后有特别直方图的图像方法。
令p r (r)和p z (z)分别为原始图像和希望图像的灰度概率密度函数。
对原始图像和希望图像均作直方图均衡化办理,应有:rz1p r (r)dr ,VG(Z)ST(r)p z (z)dz ,Z G (V)因为都是作直方图均衡化办理,所以办理后的原图像的灰度概率密度函数P S (S)及理实验 想图像的灰度概率密度函数P V (V)是相等的。
所以,能够用变换后的原始图像灰度级S原取代上式中的V ,即ZG1[T(r)]。
利用此式能够从原始图像获取希望的图像灰度级。
理 对失散图像,有n i,V ik1G 1(S i )G 1[T(r i )]P Z (Z i )G(Z i )P Z (Z i ),Z ini0综上所述,数字图像的直方图规定化就是将直方图均衡化后的结果映照到希望的理想直方图上,使图像按人的意向去变换。
数字图像的直方图规定的算法以下:(一)将原始图像作直方图均衡化办理,求出原图像中每一个灰度级r i 所对应的变.换函数S i。
(二)对给定直方图作近似计算,获取理想图像中每一个灰度级Z i所对应的变换函数V i。
(三)找出V i S i的点对,并映照到Z i。
(四)求出P i(Z i)。
实1.准备好的图片,并保留好或许选好MATLAB的工作路径验2.将参照程序稍做改正,并运转。
步3.结果分析。
骤程序以下:1.文件名:fc.mA=imread('123.jpg');I=rgb2gray(A);J=histeq(I);figure,imshow(A)figure,imshow(I);title('原灰色图像');figure,imhist(I);title('原图像的灰度直方图');实figure,imhist(J);title('均衡化图像的直方图');验figure,imshow(J);内title('均衡化图像');容2.文件名:ff.mI=imread('tire.tif');J=histeq(I,32);[counts,x]=imhist(J);Q=imread('123.jpg');figure;imshow(Q);title('原图像');A=rgb2gray(Q);figure;imhist(A);title('原图像直方图');M=histeq(A,counts);.figure;imshow(M);title('直方图规定化后的图像');figure;imhist(M);title('规定直方图');实验数据将上程序稍做变动后所得结果加:Figure;subplot(1,2,1);imhist(I,64);subplot(1,2,2);imhist(J,64);得图:.2...实验1.对程序要充分的认识,合适变动程序,比较程序和直方图之间的关系。
数字图像处理实验报告图像增强处理与几何变换
实验图像增强处理与几何变换一、实验目的利用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)。
title('原灰色图像');
figure,imhist(I);
title('原图像的灰度直方图');
figure,imhist(J);
title('均衡化图像的直方图');
figure,imshow(J);
title('均衡化图像');
2.文件名:ff.m
I=imread('tire.tif');
XX大学实验报告
学院: 专业: 班级:
~~~
学号
~~~~
实验组
~~~
实验时间
~~~~~
指导教师
~~~
成绩
实验项目名称
实验二:数字图像的直方图规定化处理
实验目的
(一)掌握数字图像的直方图规定化处理的算法和方法。
(二)熟悉数字图像的直方图规定化处理的算法原理。
实验要求
按照实验容及参考程序,独立完成此次实验,记下不懂的知识点,查阅资料或者向老师咨询。
figure;imshow(M);
title('直方图规定化后的图像');
figure;imhist(M);
title('规定直方图');
实验数据
将上程序稍做改动后所得结果
加:
Figure;
subplot(1,2,1); imhist(I,64);
subplot(1,2,2); imhist(J,64); 得图:
(三)找出 的点对,并映射到 。
(四)求出 。
实验步骤
1.准备好的图片,并保存好或者选好MATLAB的工作路径
2.将参考程序稍做修改,并运行。
3.结果分析。
实验容程Biblioteka 如下:1.文件名:fc.m
A=imread('123.jpg');
I=rgb2gray(A);
J=histeq(I);
figure,imshow(A)
2.
实验总结
1.对程序要充分的了解,适当改动程序,对照程序和直方图之间的关系。
2.直方图均衡化处理后,图像的直方图较为平直,各灰度级的值相对均匀。由于灰度级具有均匀的概率分布,图像看起来更清晰了。
指导教师意见
实验原理
直方图规定化是用于产生处理后有特殊直方图的图像方法。
令 和 分别为原始图像和期望图像的灰度概率密度函数。对原始图像和期望图像均作直方图均衡化处理,应有:
, ,
由于都是作直方图均衡化处理,所以处理后的原图像的灰度概率密度函数 及理想图像的灰度概率密度函数 是相等的。因此,可以用变换后的原始图像灰度级S代替上式中的V,即 。利用此式可以从原始图像得到希望的图像灰度级。对离散图像,有
J=histeq(I,32);
[counts,x]=imhist(J);
Q=imread('123.jpg');
figure;imshow(Q);
title('原图像');
A=rgb2gray(Q);
figure;imhist(A);
title('原图像直方图');
M=histeq(A,counts);
, ,
综上所述,数字图像的直方图规定化就是将直方图均衡化后的结果映射到期望的理想直方图上,使图像按人的意愿去变换。数字图像的直方图规定的算法如下:
(一)将原始图像作直方图均衡化处理,求出原图像中每一个灰度级 所对应的变换函数 。
(二)对给定直方图作类似计算,得到理想图像中每一个灰度级 所对应的变换函数 。