码迷,mamicode.com
首页 > 其他好文 > 详细

改变HSV的H和V部分(比如可以增加图像亮度)

时间:2014-08-14 21:04:49      阅读:458      评论:0      收藏:0      [点我收藏+]

标签:hsv opencv

程序:

效果:增加图像亮度

bubuko.com,布布扣

代码:

#include "cv.h"
#include "cxcore.h"
#include "highgui.h"
#include <iostream>
void Max(IplImage* hsv)
{
for(int rows=0;rows<hsv->height;rows++)
{
float *data=(float *)(hsv->imageData+rows*hsv->widthStep);
for(int cols=0;cols<hsv->width;cols++)
{
//*(data+cols*hsv->nChannels+1)=255;  //改变S
*(data+cols*hsv->nChannels+2)+=30;   //改变V
}
}
}
int IplImageChange(int argc,char** argv)
{
IplImage* BGRSrc=cvLoadImage("e:\\picture\\4.jpg");
cvNamedWindow("BGRSrc");
cvShowImage("BGRSrc",BGRSrc);
IplImage* BGR32=cvCreateImage(cvGetSize(BGRSrc),32,BGRSrc->nChannels); 
cvZero(BGR32);
cvConvertScale(BGRSrc,BGR32);//把源图像转换成32位浮点型
IplImage* HSV=cvCreateImage(cvGetSize(BGRSrc),32,BGRSrc->nChannels);
cvZero(HSV);
cvCvtColor(BGR32,HSV,CV_BGR2HSV);//BGR转换为HSV
cvNamedWindow("HSV");
cvShowImage("HSV",HSV);
Max(HSV);                         //改变HSV
cvNamedWindow("HSVMax");
cvShowImage("HSVMax",HSV);
cvZero(BGR32);
cvCvtColor(HSV,BGR32,CV_HSV2BGR); //HSV转换为BGR32位
cvNamedWindow("BGR32Dst");
cvShowImage("BGR32Dst",BGR32);
IplImage* BGRDst=cvCreateImage(cvGetSize(BGRSrc),8,BGRSrc->nChannels);
cvZero(BGRDst);
cvConvertScale(BGR32,BGRDst);   //BGR32位转换为BGR8位
cvNamedWindow("BGRDst");
cvShowImage("BGRDst",BGRDst);
cvWaitKey(0);
cvDestroyWindow("BGRSrc");
cvDestroyWindow("HSV");
cvDestroyWindow("HSVMax");
cvDestroyWindow("BGR32Dst");
cvDestroyWindow("BGRDst");
cvReleaseImage(&BGRSrc);
cvReleaseImage(&BGR32);
cvReleaseImage(&HSV);
cvReleaseImage(&BGRDst);
return 0;
}


本文出自 “flyclc” 博客,请务必保留此出处http://flyclc.blog.51cto.com/1385758/1539972

改变HSV的H和V部分(比如可以增加图像亮度),布布扣,bubuko.com

改变HSV的H和V部分(比如可以增加图像亮度)

标签:hsv opencv

原文地址:http://flyclc.blog.51cto.com/1385758/1539972

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!