日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Opencv的RGB到HSV顏色空間轉(zhuǎn)換

 學(xué)海無涯GL 2013-11-19

從 RGB 到 HSL 或 HSV 的轉(zhuǎn)換

設(shè) (r, g, b) 分別是一個(gè)顏色的紅、綠和藍(lán)坐標(biāo),它們的值是在 0 到 1 之間的實(shí)數(shù)。設(shè) max 等價(jià)于 r, gb 中的最大者。設(shè) min 等于這些值中的最小者。要找到在 HSL 空間中的 (h, s, l) 值,這里的 h ∈ [0, 360)是角度的色相角,而 s, l ∈ [0,1] 是飽和度和亮度,計(jì)算為:

 

(1)Matlab RGB轉(zhuǎn)換為HSV

I = imread('Lena.jpg');
HSV = rgb2hsv(I);
H = HSV(:, :, 1);
S = HSV(:, :, 2);
V = HSV(:, :, 3);
figure;
subplot(2, 3, 1); imshow(I);
//subplot(2, 3, 2); imshow(HSV);
subplot(2, 3, 4); imshow(H);
subplot(2, 3, 5); imshow(S);
subplot(2, 3, 6); imshow(V);

(2)Opencv中RGB轉(zhuǎn)換為HSV

// BRGtoHSVShow.cpp : 定義控制臺(tái)應(yīng)用程序的入口點(diǎn)。
//

//#include "stdafx.h"
#include "cv.h"
#include "cxcore.h"
#include "highgui.h"
#include "cvaux.h"

int main( )
{
 IplImage* src = NULL;
 IplImage* floatsrc = NULL;
 IplImage* floathsv = NULL;
 IplImage* floatimgH = NULL;
 IplImage* floatimgS = NULL;
 IplImage* floatimgV = NULL;

 cvNamedWindow( "src", 1 );
 cvNamedWindow( "H通道", 1 );
 cvNamedWindow( "S通道", 1 );
 cvNamedWindow( "V通道", 1 );

 src = cvLoadImage( "lena.jpg", -1);
cvShowImage( "src", src );
 CvSize size = cvGetSize( src );

 //先將圖像轉(zhuǎn)換成float型的
 floatsrc = cvCreateImage( size, IPL_DEPTH_32F, 3 );
 floathsv = cvCreateImage( size, IPL_DEPTH_32F, 3 );
 floatimgH = cvCreateImage( size, IPL_DEPTH_32F, 1 );
 floatimgS = cvCreateImage( size, IPL_DEPTH_32F, 1 );
 floatimgV = cvCreateImage( size, IPL_DEPTH_32F, 1 );

 //將src從8位轉(zhuǎn)換到32位的float型
 cvConvertScale( src, floatsrc, 1.0/255.0, 0 );//歸一化之后方能夠顯示
 //cvConvertScale( src, floatsrc, 1, 0 );
 //cvShowImage("floatsrc",floatsrc);
 //cvWaitKey(-1);

 //將float型圖像 從BGR轉(zhuǎn)換到HSV  如果需要轉(zhuǎn)換到其他的顏色空間 那么改變CV_BGR2HSV即可
 //cvCvtColor要求兩個(gè)參數(shù)的類型必須完全相同,所以要轉(zhuǎn)為float型
 cvCvtColor( floatsrc, floathsv, CV_BGR2HSV );

 //將三通道圖像 分解成3個(gè)單通道圖像,H對(duì)應(yīng)的通道時(shí)0,S、V對(duì)應(yīng)的通道時(shí)1和2
 //cvCvtPixToPlane(picHSV, h_plane, s_plane, v_plane, 0);
 cvSplit( floathsv, floatimgH, floatimgS, floatimgV, NULL);

 cvShowImage( "src", src );
 cvShowImage( "H通道", floatimgH );
 cvShowImage( "S通道", floatimgS );
 cvShowImage( "V通道", floatimgV );
//CV_BGR2HSV

 cvWaitKey( 0 );

 cvReleaseImage( &src );
 cvReleaseImage( &floathsv );
 cvReleaseImage( &floatimgH );
 cvReleaseImage( &floatimgS );
 cvReleaseImage( &floatimgV );

 return 0;
}

 

 

參考資料:

http://blog.163.com/my_it_dream_pwj/blog/static/178414305201131310153036/

http://www./thread-95980-1-1.html

http://blog.sina.com.cn/s/blog_658cfb1d01014fv5.html

http://zhidao.baidu.com/question/259749959.html

http://www./forum/viewtopic.php?t=4032

http://zh./wiki/HSL%E5%92%8CHSV%E8%89%B2%E5%BD%A9%E7%A9%BA%E9%97%B4

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多