【OpenCV学习】图像亮度、对比度调节(伽马校正)
2012-10-13 21:39
399 查看
作者:gnuhpc
出处:http://www.cnblogs.com/gnuhpc/
作者:gnuhpc
出处:http://www.cnblogs.com/gnuhpc/
出处:http://www.cnblogs.com/gnuhpc/
#include "cv.h" #include "highgui.h" #include <stdio.h> int ImageAdjust(IplImage *src,IplImage *dst, double low,double high, //x direction double bottom,double top, //y direction double gamma); int main(void) { char *filename="lena.jpg"; IplImage *dst,*src = /blog.armyourlife.info/cvLoadImage(filename,0); if(!src) { printf("Couldn't seem to Open %s, sorry/n",filename); return -1; } cvNamedWindow( "src", 1 ); cvNamedWindow( "result", 1 ); // Image adjust dst = cvCloneImage(src); // 输入参数 [0,0.5] 和 [0.5,1], gamma=1 if( ImageAdjust( src, dst, 0, 0.5, 0.5, 1, 1)!=0) return -1; cvShowImage( "src", src ); cvShowImage( "result", dst ); cvWaitKey(0); cvDestroyWindow("src"); cvDestroyWindow("result"); cvReleaseImage( &src ); cvReleaseImage( &dst ); return 0; } int ImageAdjust(IplImage* src, IplImage* dst, double low, double high, // X方向:low and high are the intensities of src double bottom, double top, // Y方向:mapped to bottom and top of dst double gamma ) { double low2 = low*255; double high2 = high*255; double bottom2 = bottom*255; double top2 = top*255; double err_in = high2 - low2; double err_out = top2 - bottom2; int x,y; double val; if(low<0 && low>1 && high <0 && high>1&& bottom<0 && bottom>1 && top<0 && top>1 && low>high) return -1; // intensity transform for( y = 0; y < src->height; y++) { for (x = 0; x < src->width; x++) { val = ((uchar*)(src->imageData + src->widthStep*y))[x]; val=pow((val - low2)/err_in, gamma)*err_out+bottom2; if(val>255) val=255; if(val<0) val=0; // Make sure src is in the range [low,high] ((uchar*)(dst->imageData + dst->widthStep*y))[x] = (uchar) val; } } return 0; }
作者:gnuhpc
出处:http://www.cnblogs.com/gnuhpc/
相关文章推荐
- 图像亮度、对比度调节(伽马校正)
- 学习opencv 一幅图像的对比度和亮度调节
- opencv学习笔记-图像对比度、亮度调节
- OpenCV学习——图像亮度、对比度调节
- 【opencv学习笔记七】访问图像中的像素与图像亮度对比度调整
- OpenCV 学习记录5 图像通道分离、对比度和亮度调整
- 【学习OpenCV】图像的亮度/对比度调整
- OpenCV学习:改变图像的对比度和亮度
- 学习OpenCV范例(五)——改变图像的对比度和亮度
- OpenCV图像亮度、对比度调节
- OpenCV学习第七篇:调整图像亮度和对比度
- OpenCV学习:创建Trackbar & 图像对比度、亮度值调整
- 【OpenCV学习笔记】十二、图像的对比度和亮度调整及图像通道的分离与合并
- OpenCV学习-3:图像亮度和对比度调整
- opencv学习之一亮度对比度调节
- OpenCV学习7--调整图像亮度和对比度
- openCV学习笔记 (六) : 改变图像的对比度和亮度
- opencv 彩色图像亮度、对比度调节 直方图均衡化
- 学习OpenCV(四) 改变图像的对比度和亮度——像素变换
- 学习OpenCV(四) 改变图像的对比度和亮度——像素变换