matlab图像处理中直方图均衡处理与直方图归一化

2020-11-25 14:46:27 字数 6214 阅读 4525

1楼:匿名用户

1、直方图均衡化处理的“中心思想”是把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布。直方图均衡化就是对图像进行非线性拉伸,重新分配图像像素值,使一定灰度范围内的像素数量大致相同。直方图均衡化就是把给定图像的直方图分布改变成“均匀”分布直方图分布。

2、归一化是一种无量纲处理手段,使物理系统数值的绝对值变成某种相对值关系。简化计算,缩小量值的有效办法。直方图归一化类比这个吧!

在matlab的gui中对图像进行直方图均衡化,直方图统计…2319

2楼:匿名用户

你先把要处理的图像载入到matlab的work文件夹里面a=imread(‘1.bmp’);%输入真彩色图像b=rgb2gray(a);%转化成灰度图像图像显示

figure(1)

subplot(1,2,1);imshow(a);

subplot(1,2,2);imshow(b);

%显示灰度图像与直方图

figure(2)

subplot(1,2,1);imshow(b);

subplot(1,2,2);imhist(b);

%直方图均衡化

c=histeq(b);

figure(3);

subplot(1,2,1);imshow(c);

subplot(1,2,2);imhist(c);

希望能对你有帮助~

图像灰度直方图归一化 matlab实现

3楼:匿名用户

可能因为你读入的是一张rgb三色的图,需要在imread 后面加一行 rgb2gray 转换成灰度图,再做后面的归一化。

4楼:匿名用户

楼主直接用imhist就好了。。。。

5楼:薄奕声笪溪

没有错啊,是不是图像是rgb图,需要先转换成灰度图试试

6楼:梁兰英邰乙

因为计算的是灰度直方图,所以要先将彩色图像转化成灰度图像才可以

进行处理,否则会出错

7楼:匿名用户

不说了 秒杀得了

clear all

%一,图像的预处理,读入彩色图像将其灰度化

ps=imread('s7.jpg'); %读入jpg彩色图像文件

figure(1);subplot(2,2,1);imshow(ps);title('原图像灰度图');

%二,绘制直方图

[m,n]=size(ps); %测量图像尺寸参数

gp=zeros(1,256); %预创建存放灰度出现概率的向量

for k=0:255

gp(k+1)=length(find(ps==k))/(m*n); %计算每级灰度出现的概率,将其存入gp中相应位置

endfigure(1);subplot(2,2,2);bar(0:255,gp,'g') %绘制直方图

title('原图像直方图')

xlabel('灰度值')

ylabel('出现概率')

%三,直方图均衡化

s1=zeros(1,256);

for i=1:256

for j=1:i

s1(i)=gp(j)+s1(i); %计算sk

endend

s2=round((s1*256)+0.5); %将sk归到相近级的灰度

for i=1:256

gpeq(i)=sum(gp(find(s2==i))); %计算现有每个灰度级出现的概率

endfigure(1);subplot(2,2,4);bar(0:255,gpeq,'b') %显示均衡化后的直方图

title('均衡化后的直方图')

xlabel('灰度值')

ylabel('出现概率')

%四,图像均衡化

pa=ps;

for i=0:255

pa(find(ps==i))=s2(i+1); %将各个像素归一化后的灰度值赋给这个像素

endfigure(1);subplot(2,2,3);imshow(pa) %显示均衡化后的图像

title('均衡化后图像')

imwrite(pa,'picequal.bmp');

怎样用matlab对一幅图像进行灰度直方图均衡化处理

8楼:匿名用户

i=imread('pout.tif'); %读自带的图像imshow(i);

figure,imhist(i);

[j,t]=histeq(i,64); %图像灰度扩展到0~255,但是只有64个灰度级

figure,imshow(j);

figure,imhist(j);

figure,plot((0:255)/255,t); %转移函数变换曲线

j=histeq(i,32);

figure,imshow(j); %图像灰度扩展到0~255,但只有32个灰度级

figure,imhist(j);

9楼:匿名用户

i0=imread('test.jpg');

i1=histeq(i0); %直方图均衡化subplot(221), imshow(i0);

subplot(222), imhist(i0);

subplot(223), imshow(i1);

subplot(224), imhist(i1);

matlab里直方图均衡化用什么函数?

10楼:与你最初

matlab直方

图均衡化的函数只有一个histeq,它是用于图像处理的。histeq的作用是把“图像”的直方图均衡化。

直方图均衡化是图像处理领域中利用图像直方图对对比度进行调整的方法。

这种方法通常用来增加许多图像的全局对比度,尤其是当图像的有用数据的对比度相当接近的时候。通过这种方法,亮度可以更好地在直方图上分布。

这样就可以用于增强局部的对比度而不影响整体的对比度,直方图均衡化通过有效地扩展常用的亮度来实现这种功能。

11楼:

你好,matlab直方图均衡化的函数只有一个histeq,就是你说的那个。它是用于图像处理的。如果你的直方图不是图像处理的直方图,请给我短消息,我可以把算法给你。

histeq的作用是把“图像”的直方图均衡化。

简单的说,有些图像有太多的亮点或者有太多的暗点。histeq通过一个算法,把亮度重新分配,让人看得舒服自然。比如说原来的点都集中在暗处,1-25之间,histeq就可以把25亮度的点“拉”到255处,24“拉”到240处..

最后图像的细节都回呈现在你面前。

例子i = imread('pout.tif');

[j,t] = histeq(i);

figure,plot((0:255)/255,t);

matlab图像直方图均衡化的编程有一点小问题~能帮忙解决么~

12楼:匿名用户

直接运行这个把

clear all

%一,图像的预处理,读入彩色图像将其灰度化

ps=imread('s7.jpg'); %读入jpg彩色图像文件

figure(1);subplot(2,2,1);imshow(ps);title('原图

像灰度图');

%二,绘制直方图

[m,n]=size(ps); %测量图像尺寸参数

gp=zeros(1,256); %预创建存放灰度出现概率的向量

for k=0:255

gp(k+1)=length(find(ps==k))/(m*n); %计算每级灰度出现的概率,将其存入gp中相应位置

endfigure(1);subplot(2,2,2);bar(0:255,gp,'g') %绘制直方图

title('原图像直方图')

xlabel('灰度值')

ylabel('出现概率')

%三,直方图均衡化

s1=zeros(1,256);

for i=1:256

for j=1:i

s1(i)=gp(j)+s1(i); %计算sk

endend

s2=round((s1*256)+0.5); %将sk归到相近级的灰度

for i=1:256

gpeq(i)=sum(gp(find(s2==i))); %计算现有每个灰度级出现的概率

endfigure(1);subplot(2,2,4);bar(0:255,gpeq,'b') %显示均衡化后的直方图

title('均衡化后的直方图')

xlabel('灰度值')

ylabel('出现概率')

%四,图像均衡化

pa=ps;

for i=0:255

pa(find(ps==i))=s2(i+1); %将各个像素归一化后的灰度值赋给这个像素

endfigure(1);subplot(2,2,3);imshow(pa) %显示均衡化后的图像

title('均衡化后图像')

imwrite(pa,'picequal.bmp');

13楼:与hu谋皮

你是说那句话后出现找不到指定模块?

写一段**画出一个图像的灰度直方图(不能用matlab自带的imhist函数),并作直方图均衡化处理。

14楼:用着追她

1、先求出给定**的直方图。

2、直方图均衡化处理的公式,其中,v和u分别代表图像的高和宽。

3、为此,写出**是:pic[i,j]=(255)/(u*v)*sum(c[:int(img[i,j])])。

4、均衡化的**如下。

5、画出均衡化**的直方图。

6、均衡化前后,**对比一下。做图像减法:pic-img。

15楼:匿名用户

clearall;

i=imread('1.jpg');

i=rgb2gray(i);%灰度化

%绘制直方图

[m,n]=size(i);

gp=zeros(1,256);

fork=0:255

gp(k+1)=length(find(i==k))/(m*n);%计算每级灰度出现的概率,将其存入gp

end%三,直方图均衡化

s1=zeros(1,256);

fori=1:256

forj=1:i

s1(i)=gp(j)+s1(i);

endend

s2=round((s1*256)+0.5);%将sk归到相近级的灰度

fori=1:256

gpeq(i)=sum(gp(find(s2==i)));%计算现有每个灰度级出现的概率

endfigure;

subplot(221);bar(0:255,gp,'b');

title('原图像直方图')

subplot(222);bar(0:255,gpeq,'b')title('均衡化后的直方图')

x=i;

fori=0:255

x(find(i==i))=s2(i+1);

endsubplot(223);imshow(i);

title('原图像');

subplot(224);imshow(x);

title('直方图均衡后的图像');

数字图像处理题目(直方图均衡化)

1楼 钟 pr r11 0 023写错了, 均衡化后只输出10个灰度级了,分别是 ps s3 0 195 ps s5 0 160 ps s8 0 147 ps s9 0 106 ps s10 0 073 ps s11 0 056 ps s12 0 09 ps s13 0068 ps s14 0 06...