這篇文章主要為大家詳細(xì)介紹了利用opencv怎么對圖像顏色的空間進(jìn)行轉(zhuǎn)換,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,發(fā)現(xiàn)的小伙伴們可以參考一下:

opencv常用的樣色空間包括RGB, HSV和YUV等。RGB顏色空間是基于三基色原理二形成的,常用于圖像顯示系統(tǒng)中;HSV描述的色度,飽和度,亮度這些表示顏色得方法,常用于描述色彩變化;YUV是通過亮度和色度來描述顏色,色度由UV通道組合而成。
opencv提供cvtColor(inputArray src, outputArray dst, int code, int dstCn = 0)
src是輸入圖像原,可以是8位CV_8U或者16位CV_16U無符號整形,或者單精度浮點數(shù)CV_32F;code是顏色空間轉(zhuǎn)換模式,常用的有有CV_RGB2GRAY, CV_RGB2HSV,CV_BGR2HLS以及CV_BGR2YCrCb等。dstCn是目標(biāo)圖像的多通道設(shè)置,設(shè)置為0表示通道數(shù)自動從src和code處獲取。
opencv中默認(rèn)的通道BGR,因此在標(biāo)準(zhǔn)的24bit顏色空間圖像中最先存儲字節(jié)的是藍(lán)色部分,其次是綠色,最后字節(jié)存放紅色部分。cvtColor中對輸入原圖像有嚴(yán)格要求,對于非src要求類型。輸入圖像要歸一化到相應(yīng)類型中。在大多數(shù)場景下,為了更好的利用32為圖像的信息,一般在操作之前要先轉(zhuǎn)到src要求的類型,完成操作以后在轉(zhuǎn)會。
需要說明的是,在進(jìn)行顏色空間轉(zhuǎn)換時,RGB各個通道的范圍應(yīng)當(dāng)根據(jù)實際需要來進(jìn)行歸一化,如RGB轉(zhuǎn)到LUV通道時,需要將RGB歸一化為32為浮點數(shù),及各個通道的值變化范圍是0到1;代碼如下:
img *= 1./255; cvtColor(img, img,CV_BGR2Luv);
例子RGB轉(zhuǎn)HSV
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/core/core.hpp>
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
cv::Mat srcImage = cv::imread("C:\\Users\\LP\\Desktop\\C++\\ConsoleApplication4\\ConsoleApplication4\\1.jpg");
if (srcImage.empty())
{
return -1;
}
cv::imshow("原圖像", srcImage);
cv::Mat image_hsv, image_H, image_S, image_V, image_col;
//HSV顏色空間轉(zhuǎn)換
cv::cvtColor(srcImage, image_hsv, CV_BGR2HSV);
cv::imshow("image_hsv", image_hsv);
//YCrCb顏色空間轉(zhuǎn)換
cv::cvtColor(srcImage, image_col, CV_BGR2YCrCb);
cv::imshow("image_col", image_col);
//HLS顏色空間轉(zhuǎn)換
cv::cvtColor(srcImage, image_col, CV_BGR2HLS);
cv::imshow("iamge_HLS", image_col);
//Lab顏色空間轉(zhuǎn)換
cv::cvtColor(srcImage, image_col, CV_BGR2Lab);
cv::imshow("image_Lab", image_col);
//分離HSV各個通道
std::vector<cv::Mat> hsvChannels;
cv::split(image_hsv, hsvChannels);
//0通道為H分量,1通道為S分量,2通道為V分量
image_H = hsvChannels[0];
image_S = hsvChannels[1];
image_V = hsvChannels[2];
//分別顯示各通道圖像
cv::imshow("image_H", image_H);
cv::imshow("image_S", image_S);
cv::imshow("image_V", image_V);
cv::waitKey(0);
return 0;
}以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)建站。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站chinadenli.net,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、建站服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
分享文章:利用opencv怎么對圖像顏色的空間進(jìn)行轉(zhuǎn)換-創(chuàng)新互聯(lián)
標(biāo)題路徑:http://chinadenli.net/article16/cdoegg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、商城網(wǎng)站、網(wǎng)站建設(shè)、云服務(wù)器、外貿(mào)建站、網(wǎng)站收錄
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容