matlab实现灰度直方图均匀化
2015-10-15 17:09
375 查看
p=imread('test.jpg');
figure(1);
imshow(p);
p=rgb2gray(p); %转换为灰度图像
figure(11);
imshow(p);
figure(2);
imhist(p); %显示灰度分布图
figure(1234);
histgram=zeros(1,256); %灰度统计数组
[m,n]=size(p);
for i=1:m
for j=1:n
k=p(i,j);
histgram(k+1)=histgram(k+1)+1;
end
end
x=1:255;
plot(x,histgram(x));
%以上为灰度的分布情况
%计算每一个点的概率值
all=m*n;
histgram(1)=histgram(1)/all;
for i=2:255
histgram(i)=histgram(i)/all;
histgram(i)=histgram(i-1)+histgram(i);
end
figure(3);
x=1:255;
plot(x,histgram(x));
%开始计算新的灰度值
for i=1:m
for j=1:n
k=p(i,j);
p(i,j)=histgram(k+1)*256;
end
end
%显示直方均匀化后的图像
figure(4);
imshow(p);
imhist(p);
figure(1);
imshow(p);
p=rgb2gray(p); %转换为灰度图像
figure(11);
imshow(p);
figure(2);
imhist(p); %显示灰度分布图
figure(1234);
histgram=zeros(1,256); %灰度统计数组
[m,n]=size(p);
for i=1:m
for j=1:n
k=p(i,j);
histgram(k+1)=histgram(k+1)+1;
end
end
x=1:255;
plot(x,histgram(x));
%以上为灰度的分布情况
%计算每一个点的概率值
all=m*n;
histgram(1)=histgram(1)/all;
for i=2:255
histgram(i)=histgram(i)/all;
histgram(i)=histgram(i-1)+histgram(i);
end
figure(3);
x=1:255;
plot(x,histgram(x));
%开始计算新的灰度值
for i=1:m
for j=1:n
k=p(i,j);
p(i,j)=histgram(k+1)*256;
end
end
%显示直方均匀化后的图像
figure(4);
imshow(p);
imhist(p);
相关文章推荐
- Matlab计算矩阵和函数梯度
- matlab中repmat函数的用法
- EKF-SLAM matlab仿真(1)
- 线性规划问题的matlab求解
- matlab 如何读取二进制、十六进制txt文档
- Matlab中各类函数用法
- MATLAB对于文本文件(txt)数据读取的技巧总结(经典中的经典)
- Matlab 字符串处理函数
- 解决办法:matlab Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap
- Caffe matlab之基于Alex network的特征提取
- matlab unique找出矩阵中不同元素
- 使用matlab进行多项式的拟合
- matlab中size()函数的用法
- matlab中find函数的使用说明
- MATLAB数字图像处理(二)直方图
- matlab将多条曲线绘制在一起
- matlab链接摄像头
- matlab下文件夹下所有文件改名
- matlab函数(连通区域)
- Matlab生成exe可执行文件