opencv 亮度与对比度调节
2011-09-26 10:59
218 查看
// cv1.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <cv.h>
#include <cxcore.h>
#include <highgui.h>
int BrightnessAdjust(const IplImage* srcImg,
IplImage* dstImg,
float brightness)
{
assert(srcImg != NULL);
assert(dstImg != NULL);
int x,y,i;
float val;
for (i = 0; i < 3; i++)//彩色图像需要处理3个通道,灰度图像这里可以删掉
{
for (y = 0; y < srcImg->height; y++)
{
for (x = 0; x < srcImg->width; x++)
{
val = ((uchar*)(srcImg->imageData + srcImg->widthStep*y))[x*3+i];
val += brightness;
//对灰度值的可能溢出进行处理
if(val>255) val=255;
if(val<0) val=0;
((uchar*)(dstImg->imageData + dstImg->widthStep*y))[x*3+i] = (uchar)val;
}
}
}
return 0;
}
int ContrastAdjust(const IplImage* srcImg,
IplImage* dstImg,
float nPercent)
{
assert(srcImg != NULL);
assert(dstImg != NULL);
int x,y,i;
float val;
for (i = 0; i < 3; i++)//彩色图像需要处理3个通道,灰度图像这里可以删掉
{
for (y = 0; y < srcImg->height; y++)
{
for (x = 0; x < srcImg->width; x++)
{
val = ((uchar*)(srcImg->imageData + srcImg->widthStep*y))[x*3+i];
val = 128 + (val - 128) * nPercent;
//对灰度值的可能溢出进行处理
if(val>255) val=255;
if(val<0) val=0;
((uchar*)(dstImg->imageData + dstImg->widthStep*y))[x*3+i] = (uchar)val;
}
}
}
return 0;
}
int main(int argc, char** argv)
{
IplImage* srcImg = cvLoadImage("77.jpg");
assert( srcImg != NULL );
IplImage* brightnessImg = cvCloneImage(srcImg);
//亮度变换,最后数值取值为正时变亮,负则变暗
BrightnessAdjust(srcImg, brightnessImg, 8.0f);
IplImage* contrastImg = cvCloneImage(srcImg);
//对比度变换,数值小于1降低对比度,大于1增强对比度
ContrastAdjust(srcImg, contrastImg, 1.3f);
cvNamedWindow("Source",CV_WINDOW_AUTOSIZE);
cvNamedWindow("BrightnessAdjust",CV_WINDOW_AUTOSIZE);
cvNamedWindow("ContrastAdjust",CV_WINDOW_AUTOSIZE);
cvShowImage("Source",srcImg);
cvShowImage("BrightnessAdjust",brightnessImg);
cvShowImage("ContrastAdjust",contrastImg);
cvWaitKey(0);
cvReleaseImage(&srcImg);
cvReleaseImage(&brightnessImg);
cvReleaseImage(&contrastImg);
cvDestroyWindow("Source");
cvDestroyWindow("BrightnessAdjust");
cvDestroyWindow("ContrastAdjustrast");
return 0;
}
相关文章推荐
- OpenCv基础(二):图像的亮度和对比度属性的调节
- opencv学习之一亮度对比度调节
- opencv:通过滑动条调节亮度和对比度
- opencv 彩色图像亮度、对比度调节 直方图均衡化
- Opencv中用进度条调节亮度、对比度
- opencv学习笔记-图像对比度、亮度调节
- opencv亮度对比度调节
- 【OpenCV学习】图像亮度、对比度调节(伽马校正)
- OpenCV图像亮度、对比度调节
- OpenCV图像亮度、对比度调节
- opencv调节图片亮度对比度
- 学习opencv 一幅图像的对比度和亮度调节
- opencv图像的对比度、亮度调节
- opencv 调节图片亮度和对比度(注意头文件顺序)
- OpenCV学习——图像亮度、对比度调节
- OpenCV基础篇之像素操作对比度调节
- OpenCV--调整图像亮度和对比度
- (一)OpenCV图像线性求和以及修改图像对比度和亮度
- OpenCV学习:创建Trackbar & 图像对比度、亮度值调整
- OpenCV 调整图像亮度以及对比度