直方图均衡化
来源:互联网 发布:java课程大纲 编辑:程序博客网 时间:2024/06/03 19:12
直方图均衡化的目的是利用图像直方图对图像对比度进行调整,“均衡”指将原有的直方图改为均匀分布的直方图。
算法流程
1.构建一个1*255的数组h,用于统计不同灰度值对应的像素个数;
2.计算每个灰度的像素个数在整个图像中所占的百分比
hs(i)=h(i)/image.size i=0….255
3.计算图像各灰度级的累计分布hp
hp(i)=sum[hs(k)] k=0…i
4.求出新图像的灰度值
I =255*hp(i)
Matlab代码
I = (imread('lena.bmp'));subplot(2,2,1);imshow(I);subplot(2,2,2);imhist(I);[height, width]=size(I);步骤一pixel=zeros(1,256);for i = 1:height for j = 1:width pixel(I(i,j)+1) = pixel(I(i,j)+1) +1;//matlab里下标从1开始,所以数组往后推一位 endend步骤二N=height*width*1.0;probpixel=zeros(1,256);for i = 1:256 probpixel(i) = pixel(i)/N;end步骤三cumprobpixel=zeros(1,256);for i =1:256 if i==1 cumprobpixel(1)=probpixel(1); else cumprobpixel(i)=cumprobpixel(i-1)+probpixel(i); endend步骤四for i=1:height for j=1:width I(i,j)=uint8(255*cumprobpixel(I(i,j)+1)+0.5);//这里是要取整 endendsubplot(2,2,3);imshow(I);subplot(2,2,4);imhist(I);
同理c++代码也是同样的步骤。
其实呀,写代码并不难,难的是要把算法步骤理解,这样才能写出来代码。所以并没有不会写代码的人,只会有不理解算法却以自己不擅长,写不好代码为借口的人!自勉(^o^)/~
0 0
- 直方图均衡化、自适应直方图均衡化
- 直方图均衡化推导
- 直方图均衡化
- 直方图均衡化
- 直方图均衡化
- 直方图均衡化
- 灰度直方图均衡化
- 直方图均衡化
- 直方图均衡化
- 直方图均衡化
- matlab直方图均衡化
- 直方图均衡化
- opencv直方图均衡化
- 直方图均衡化原理
- 直方图均衡化
- 直方图均衡化
- 直方图的均衡化
- 直方图均衡化ZT
- Intellij idea 如何让光标不随意定位
- [项目实训]Python爬虫基本库回顾及实例练习
- 数据可视化三:Matlab数据可视化(二)
- 三子棋游戏
- 欢迎使用CSDN-markdown编辑器
- 直方图均衡化
- Intellij idea 修改控制台的字体样式
- 如何为图片添加闪烁效果
- js在进行==值比较时进行的隐性类型转换
- C++抽象编程——面向对象(9)——token扫描器
- js ==与===的区别
- Intellij idea 修改编辑器的字体
- VB .NET 读取数据库数据处理后再循环插入数据库
- SonicOperator之多普勒效应