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

程序:

效果:增加图像亮度

代码:

#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;
}

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

时间: 2024-12-18 10:41:00

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

[UWP]使用Writeable?Bitmap创建HSV色轮

原文:[UWP]使用Writeable?Bitmap创建HSV色轮 1. HSV 1.1 HSV的定义 HSV都是一种将RGB色彩模型中的点在圆柱坐标系中的表示法,这种表示法试图做到比RGB基于笛卡尔坐标系的几何结构更加直观.HSV即色相.饱和度.明度(英语:Hue, Saturation, Value),又称HSB,其中B即英语:Brightness. 色相(H)是色彩的基本属性,就是平常所说的颜色名称,如红色.黄色等,取值0-360.红色是0,绿色是120,蓝色为240. 饱和度(S)是指色

Atitit hsv转grb &#160;应该优先使用hsv颜色原则 方便人类

Atitit hsv转grb  应该优先使用hsv颜色原则 方便人类 1.1. 1.1.hsv色卡1 1.2. 从 HSV 到 RGB 的转换1 1.3. HSVtoRGBColorV22 1.1. 1.1.hsv色卡 1.2. 从 HSV 到 RGB 的转换 类似的,给定在 HSV 中 (h, s, v) 值定义的一个颜色,带有如上的 h,和分别表示饱和度和明度的 s 和 v 变化于 0 到 1 之间,在 RGB 空间中对应的 (r, g, b) 三原色可以计算为: 对于每个颜色向量 (r, 

颜色空间RGB与HSV(HSL)的转换

转自:http://blog.csdn.net/jiangxinyu/article/details/8000999 一般的3D编程只需要使用RGB颜色空间就好了,但其实美术人员更多的是使用HSV(HSL),因为可以方便的调整饱和度和亮度. 有时候美术需要程序帮助调整饱和度来达到特定风格的渲染效果,这时候就需要转换颜色空间了. 出处:http://zh.wikipedia.org/wiki/HSL%E5%92%8CHSV%E8%89%B2%E5%BD%A9%E7%A9%BA%E9%97%B4 H

1 色相、饱和度、明度定义

色彩三要素(Elements of color)色彩可用的色调(色相).饱和度(纯度)和明度来描述.人眼看到的任一彩色光都是这三个特性的综合效果,这三个特性即是色彩的三要素,其中色调与光波的波长有直接关系,亮度和饱和度与光波的幅度有关. 1.1 色相定义 色彩是由于物体上的物理性的光反射到人眼视神经上所产生的感觉.色的不同是由光的波长的长短差别所决定的.作为色相,指的是这些不同波长的色的情况.波长最长的是红色,最短的是紫色.把红.橙.黄.绿.蓝.紫和处在它们各自之间的红橙.黄橙.黄绿.蓝绿.蓝紫

图像处理之色相、饱和度、明度

1 色相.饱和度.明度定义 色彩三要素(Elements of color)色彩可用的色调(色相).饱和度(纯度)和明度来描述.人眼看到的任一彩色光都是这三个特性的综合效果,这三个特性即是色彩的三要素,其中色调与光波的波长有直接关系,亮度和饱和度与光波的幅度有关. 1.1 色相定义 色彩是由于物体上的物理性的光反射到人眼视神经上所产生的感觉.色的不同是由光的波长的长短差别所决定的.作为色相,指的是这些不同波长的色的情况.波长最长的是红色,最短的是紫色.把红.橙.黄.绿.蓝.紫和处在它们各自之间的

MATLAB图像处理_HSV与RGB颜色空间互转

废话不多说,没什么技术含量,因为下面的代码是matlab中自带的转换函数.在这里贴出来只是为了方便以后复习.研究其转换的算法: HSV空间:分别是H(色调)--S(饱和度)--V(亮度) 与HSI颜色空间类似:分别是H(色调)--S(饱和度)--I(强度) 注意: 强度和亮度其实是一个概念. 饱和度代表的是渗入白光的数量级,白光越多,饱和度越小,白光越少,饱和度越大,表示颜色的纯度更大. 下面是代码: rgb2hsv.m function [h,s,v] = rgb2hsv(r,g,b) %RG

【JavaScript】颜色选择器

颜色空间RGB与HSV(HSL)的转换 好文推荐:http://blog.csdn.net/jiangxinyu/article/details/8000999 从 HSV 到 RGB 的转换 类似的,给定在 HSV 中 (h, s, v) 值定义的一个颜色,带有如上的 h,和分别表示饱和度和明度的 s 和 v 变化于 0 到 1 之间,在 RGB 空间中对应的 (r, g, b) 三原色可以计算为: 对于每个颜色向量 (r, g, b), <!DOCTYPE html PUBLIC "-

paper 74:MATLAB图像处理_HSV与RGB颜色空间互转

HSV空间:分别是H(色调)——S(饱和度)——V(亮度) 与HSI颜色空间类似:分别是H(色调)——S(饱和度)——I(强度) 注意: 强度和亮度差不多是一个概念. 饱和度代表的是渗入白光的数量级,白光越多,饱和度越小,白光越少,饱和度越大,表示颜色的纯度更大. 下面是代码: rgb2hsv.m function [h,s,v] = rgb2hsv(r,g,b) %RGB2HSV Convert red-green-blue colors to hue-saturation-value. %

opencv_图像的色彩空間cvtColor(HSV、HSL、HSB )及相关色彩学

一.色彩空间理论 几种色彩空间: 1.RGB Red 红色,0-255 Green 绿色,0-255 Blue 蓝色,0-255  2.HSI HSI色彩空间可以用一个圆锥空间模型来描述.用这种 描述HIS色彩空间的圆锥模型相当复杂,但确能把色调.亮度和色饱和度的变化情形表现得很清楚. 通常把色调和饱和度通称为色度,用来表示颜色的类别与深浅程度.由于人的视觉对亮度的敏感 程度远强于对颜色浓淡的敏感程度,为了便于色彩处理和识别,人的视觉系统经常采用HSI色彩空间, 它比RGB色彩空间更符合人的视觉