图像处理基本算法-直方图均衡
来源:互联网 发布:大数据时代小数据分析 编辑:程序博客网 时间:2024/05/16 08:13
转自:http://blog.csdn.net/renshengrumenglibing/article/details/7065330
直方图是多种空间处理技术的基础,可以用于图像增强。同时在其他的处理方法中也十分有用,比如图像压缩和分割。
基本的原理:
Ni = 255*(N0 + N1 + N2 +……Ni)/(width*height)
程序流程:
1、统计各个像素值的个数
2、建立映射表
3、赋予新值
处理后图像:
源代码:
#include<cv.h> #include<highgui.h> int main(){ IplImage * image; image = cvLoadImage("E:\\image\\pollen.jpg",0); cvNamedWindow("image",CV_WINDOW_AUTOSIZE); //cvSaveImage("E:\\image\\pollen.jpg",image,0); cvShowImage("image",image); cvWaitKey(0); unsigned char * ptr; int count[256] = {0};//灰度值的个数 int map[256];//灰度映射表 int temp; if(image->nChannels == 3){ return 0; } else if(image->nChannels == 1){ //统计各个灰度值的个数 for(int i = 0 ; i < image->height;i++){ for(int j = 0; j< image->width;j++){ ptr = (unsigned char *)image->imageData + i*image->widthStep + j; count[*ptr]++; } } //建立映射表,根据n*255/w*h。 for(int m = 0 ; m< 256 ; m++){ temp = 0; for(int n = 0 ; n<= m ;n++){ temp += count[n]; } map[m] = (unsigned char)(temp * 255/image->width/image->height); } //给图片赋予新值 for(int i = 0 ; i < image->height;i++){ for(int j = 0; j< image->width;j++){ ptr = (unsigned char *)image->imageData + i*image->widthStep +j; //得到I行,J列。 *ptr = map[*ptr]; } } } cvShowImage("image",image); cvWaitKey(0); cvSaveImage("E:\\image\\pollen2.jpg",image,0); return 0; }
- 图像处理基本算法-直方图均衡
- 图像处理基本算法-直方图均衡
- 灰度图像直方图均衡处理
- 彩色图像直方图均衡处理
- 图像处理------直方图均衡化
- 【图像处理笔记】直方图均衡
- 【图像处理笔记】直方图均衡
- 【图像处理】直方图均衡化
- 直方图均衡化---图像处理
- 图像处理-基本算法之灰度均衡
- 【OpenCV3图像处理】图像直方图均衡化、直方图匹配
- 图像处理(二)直方图均衡化
- 图像处理之直方图均衡化
- 图像处理-光照规整-直方图均衡化
- 图像处理之(直方图)均衡化
- 直方图均衡化处理图像(python)
- 图像处理学习之直方图均衡
- 【VC图像处理】直方图均衡化
- timesTen 11.22版本 Hibernate方言
- MVC 3.0 使用筛选器
- 要内心强大,做个美好温暖自立自强的女子
- 狗语翻译器热销?神马玩意
- 使用工具将中文转化成ascii编码
- 图像处理基本算法-直方图均衡
- 信息图:第一印象的魅力
- 使用aws邮件服务
- SQL中Exists用法
- 线程通信----读写锁
- 系统装机:Windows7下Ubuntu 双系统安装图文详解,开机默认启动为windows
- jsp里面的map解析
- JNI基本数据类型对照
- Oracle 并行DDL简介