Matlab 彩色图片直方图均衡化处理 line()函数实现
来源:互联网 发布:matlab 将矩阵归一化 编辑:程序博客网 时间:2024/06/01 17:46
好了,不说这么多了,直奔主题,本次分别做了两次实现,分别是:彩色图片转灰度图直方图均衡化处理以及彩色图片的直方图均衡化处理,大家可以按需观看。
一、程序源码
(1)彩色图片转灰度图直方图均衡化处理:
%读取图片I=imread('test.jpg');%将图片转化成灰度图片I=rgb2gray(I);%显示原图像figure(4),imshow(I);%获得灰度图的长和宽[M,N]=size(I);%做直方图均衡化处理,设置初始参数average=0;%做直方图均衡化处理,创建映射区域A=zeros(1,256);%获得每一个点的灰度值,并判断其值等于多少for k=1:256 count=0; for i=1:M for j=1:N value=I(i,j); %统计灰度值 if value==k count=count+1; end end end %画出图像灰度直方图 figure(1),line([k,k],[0,count]); %直方图均衡化处理 count=count/(M*N*1.0); average=average+count; %获得灰度映射 A(k)=average; %画出均衡化后的直方图 figure(2),line([k,k],[0,average]);end%累计分布取整,+0.5等于四舍五入,也就是取整A=uint8(255.*A+0.5);%进行直方图反映射,得到处理后的原图像for i=1:M for j=1:N I(i,j)=A(I(i,j)); endend%展示处理后图像figure(3),imshow(I);
实验结果截图:
(2)彩色图片的直方图均衡化处理
彩色图片的直方图均衡化处理与灰度图的处理方法一样,不同的地方在于要分别把R、G、B层做一次处理,也就是处理三次,而灰度图像就只需要处理灰度值就行,这就是两者唯一的不同。因此,原理懂了,就不难实现了
%读取图片I=imread('test.jpg');figure(7),imshow(I);%获取图片的长、宽和层数(其实等于三,R、G、B三层)[M,N,G]=size(I);result=zeros(M,N,3);%获得每一层每一个点的RGB值,并判断其值等于多少for g=1:3 A=zeros(1,256); %每处理完一层,参数要重新初始化为0 average=0; for k=1:256 count=0; for i=1:M for j=1:N value=I(i,j,g); if value==k count=count+1; end end end figure(g),line([k,k],[0,count]); count=count/(M*N*1.0); average=average+count; A(k)=average; figure(g+3),line([k,k],[0,average]); end A=uint8(255.*A+0.5); for i=1:M for j=1:N I(i,j,g)=A(I(i,j,g)+0.5); end end end%展示处理效果figure(8),imshow(I);
实验结果截图:
以上,就是如何运用line()函数来画直方图以及如何通过对直方图进行处理来处理图片的运用啦。个人觉得不足的地方在于for循环用的有些多,程序看起来有点臃肿,希望有大神能够指点一二。
阅读全文
1 0
- Matlab 彩色图片直方图均衡化处理 line()函数实现
- 直方图均衡化的matlab实现
- 用MATLAB编程实现直方图均衡化
- 直方图均衡化—matlab实现
- 直方图均衡化(matlab实现)
- 直方图均衡化matlab实现(续)
- 图像直方图均衡化MATLAB实现
- 直方图均衡化—matlab实现
- matlab直方图均衡化
- 【matlab】直方图均衡化
- 直方图均衡化matlab
- 直方图均衡化(matlab)
- matlab 直方图均衡化
- Matlab 直方图均衡化
- [matlab]直方图均衡化
- 使用 matlab 数字图像处理(二)—— 直方图均衡化(极简实现)
- 直方图均衡化处理
- 【MATLAB图像处理2】 直方图的均衡化(附源码)
- ue4与c++
- 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字
- ARQ
- notepad复制列
- Python实现Pat 1027. Colors in Mars (20)
- Matlab 彩色图片直方图均衡化处理 line()函数实现
- shell 脚本 输入参数 学习
- [Text_Mining]notes_2
- Heartbeat搭建
- bzoj 2750: [HAOI2012]Road
- 第1章 使用gradle命令行
- 51nod 1478 括号序列的最长合法子段 (括号匹配)
- 建材行业免费发布信息平台大全!
- matmul