0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

OpenCV中色彩空間的轉(zhuǎn)換函數(shù)

深度學習自然語言處理 ? 來源:深度學習自然語言處理 ? 作者:云時之間 ? 2020-11-02 15:23 ? 次閱讀

在這一篇文章中,我們將會學習使用一下OpenCV中色彩空間的轉(zhuǎn)換函數(shù),我們這里說的色彩空間是說的使用多種顏色(通常指三種以上),來表示顏色的方法,像是我們平時所說的RGB,HSV,YUV,YCRCB,都是色彩空間模型。OpenCV也很方便的封裝了很多的色彩空間函數(shù)。下面我們一起來實踐一下(以下所有試驗都根據(jù)下圖完成,我截取的Windows自帶的壁紙^_^)


一:RGB

RGB我們很熟悉,一幅圖像是由三個獨立的紅,藍,綠通道構(gòu)成,每個值代表每個像素的每個分量的度量值,如果值越高也就越亮。

因為人眼也是由三種感光細胞構(gòu)成,因此RGB我們是最熟悉的,比如在電競的時候,使用RGB燈可以刺激人的感官,提升成績。

上圖也就是RGB的實現(xiàn)方式。


二:灰度

灰度圖像我們的應(yīng)用也是非常廣泛,包括我們后續(xù)的如果做視頻追蹤也都是將彩色視頻逐幀轉(zhuǎn)換為灰度圖像再去定位,不過這是后話。

彩色轉(zhuǎn)換為灰度圖像的計算方法如下:

每個像素值只表示灰度信息這一單一信息

RGB[A]準換成灰度:Y=0.299*R+0.587*G+0.114*B

灰度轉(zhuǎn)換為RGB[A]:R=Y,G=Y,B=Y,A=max(ChannelRange)

在OpenCV中我們可以使用cvtColor函數(shù)來實現(xiàn)轉(zhuǎn)換

結(jié)果如下:


三:HSV

HSV顏色空間輸入面向色度的顏色坐標系統(tǒng)的一種。這種類型的顏色模型接近人類顏色感知的仿真模型。

HSV的三個通道表示色度(H給出的顏色光譜構(gòu)成的一種度量),飽和度(S給出主波長中的純光比例,這表明一種顏色距離相同亮度灰度的程度)和純度(V給出相對于白色光照強度的亮度),對應(yīng)于直覺上的色彩、明暗和色調(diào)。HSV廣泛應(yīng)用于色彩的比較.

關(guān)于HSV的計算可以參考以下的公式:

這里我們用OpenCV實現(xiàn):

得到的結(jié)果如下:

這樣來看,似乎什么信息都沒有,這里要注意一點,因為在代碼中顯示函數(shù)使用的是imshow(),這個函數(shù)是以RGB來顯示的,因此我們使用HSV肯定是不正確的,如果想顯示正確,必須要將其轉(zhuǎn)換成RGB空間,這個具體以后再詳細說一下。


四:YCRCB

該空間廣泛用于視頻和圖像壓縮,不能算作純粹的色彩空間,它是RGB顏色空間的一種解碼方式Y(jié)通道表示亮度,而Cr和Cb表示紅色差值(在RGB空間中R通道和Y的差值)和藍色差值(在RGB空間中B通道和Y的差值)各自的色度分量。

其變化的計算如下:

在OpenCV中,我們使用:

得到的結(jié)果如下:

總體來看,還是可以看得出相對于其他的色彩模型,還是能夠保留一定的色彩,但是因為壓縮的緣故,色彩空間還是差很多。

完整的代碼如下,希望大家可以多多動手,親身嘗試一下。

import cv2 as cvimport numpy as np#色彩空間轉(zhuǎn)換函數(shù):RGB,HSV,YUV重要def color_space_demo(image): gray = cv.cvtColor(image,cv.COLOR_BGR2GRAY) cv.imshow("gray",gray) hsv = cv.cvtColor(image,cv.COLOR_BGR2HSV) cv.imshow("HSV",hsv) yuv = cv.cvtColor(image,cv.COLOR_BGR2YUV) cv.imshow("YUV",yuv) Ycrcb = cv.cvtColor(image,cv.COLOR_BGR2YCrCb) cv.imshow("YCRCB",Ycrcb) #imread函數(shù)用來讀取圖片src = cv.imread("D:/1.png")#namedWindow函數(shù)用來指定輸出圖片的尺寸和窗口大小,autosize是自動大小cv.namedWindow("input image",cv.WINDOW_AUTOSIZE)#imshow函數(shù)用來顯示圖像cv.imshow("input image",src)color_space_demo(src)#等待鍵盤觸發(fā),否則一直在此窗口等待cv.waitKey(0)#結(jié)束所有的窗口cv.destroyAllWindows()

責任編輯:xj

原文標題:【CV學習筆記】色彩空間

文章出處:【微信公眾號:深度學習自然語言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • CV
    CV
    +關(guān)注

    關(guān)注

    0

    文章

    52

    瀏覽量

    16836
  • OpenCV
    +關(guān)注

    關(guān)注

    29

    文章

    623

    瀏覽量

    41187
  • HSV
    HSV
    +關(guān)注

    關(guān)注

    0

    文章

    10

    瀏覽量

    2589

原文標題:【CV學習筆記】色彩空間

文章出處:【微信號:zenRRan,微信公眾號:深度學習自然語言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    RTOS鉤子函數(shù)的用途及用法

    在很多操作系統(tǒng),都存在這樣一類API函數(shù)接口:HOOK函數(shù)(也叫鉤子函數(shù))。
    的頭像 發(fā)表于 10-23 16:25 ?108次閱讀
    RTOS<b class='flag-5'>中</b>鉤子<b class='flag-5'>函數(shù)</b>的用途及用法

    OpenCV圖像識別C++代碼

    安裝OpenCV庫 首先,您需要在您的計算機上安裝OpenCV庫。您可以從OpenCV官網(wǎng)下載預編譯的庫或從源代碼編譯。安裝完成后,確保將OpenCV的頭文件和庫文件添加到您的項目中。
    的頭像 發(fā)表于 07-16 10:42 ?1456次閱讀

    opencv-python和opencv一樣嗎

    不一樣。OpenCV(Open Source Computer Vision Library)是一個開源的計算機視覺和機器學習軟件庫,它提供了大量的圖像和視頻處理功能。OpenCV
    的頭像 發(fā)表于 07-16 10:38 ?704次閱讀

    opencv的主要功能有哪些

    OpenCV提供了豐富的圖像處理功能,包括圖像的讀取、顯示、保存、轉(zhuǎn)換等。此外,OpenCV還支持圖像的濾波、邊緣檢測、形態(tài)學操作、圖像金字塔等高級圖像處理技術(shù)。 特征檢測與描述:OpenC
    的頭像 發(fā)表于 07-16 10:35 ?1073次閱讀

    OpenCV攜奧比光3D相機亮相CVPR 2024

    6月17日-21日,奧比光合作伙伴OpenCV攜Orbbec 3D相機參展在美國西雅圖舉辦的CVPR 2024(即IEEE國際計算機視覺與模式識別會議),讓開發(fā)者親身體驗Orbbec 3D相機
    的頭像 發(fā)表于 06-21 09:38 ?445次閱讀

    嵌入式學習-飛凌ElfBoard ELF 1板卡 - 如何在Ubuntu編譯OpenCV

    在之前發(fā)布的文章探討了交叉編譯OpenCV并部署至嵌入式系統(tǒng)的方法。然而,在調(diào)試階段,我們發(fā)現(xiàn)在 Ubuntu 環(huán)境下將 OpenCV 編譯為 X86 架構(gòu)可能更加方便和高效。 通過在主機上編譯并
    發(fā)表于 06-07 09:21

    ELF 1技術(shù)貼|如何在Ubuntu編譯OpenCV

    在之前發(fā)布的文章探討了交叉編譯OpenCV并部署至嵌入式系統(tǒng)的方法。然而,在調(diào)試階段,我們發(fā)現(xiàn)在Ubuntu環(huán)境下將OpenCV編譯為X86架構(gòu)可能更加方便和高效。通過在主機上編譯并使用X86架構(gòu)
    的頭像 發(fā)表于 05-31 16:41 ?1100次閱讀
    ELF 1技術(shù)貼|如何在Ubuntu<b class='flag-5'>中</b>編譯<b class='flag-5'>OpenCV</b>庫

    請問STM32_ImageProcessingLibrary中有類似于opencv的findContours函數(shù)嗎?

    STM32_ImageProcessingLibrary中有類似于opencv的findContours函數(shù)嗎?
    發(fā)表于 03-07 07:17

    如何實現(xiàn)PIL和OpenCV之間圖像數(shù)據(jù)的轉(zhuǎn)換呢?

    PIL圖像數(shù)據(jù)格式轉(zhuǎn)換OpenCV圖像數(shù)據(jù)格式
    的頭像 發(fā)表于 02-25 13:43 ?1104次閱讀

    SDI轉(zhuǎn)AV轉(zhuǎn)換器技術(shù)解析:轉(zhuǎn)換過程中的關(guān)鍵要素與優(yōu)勢

    優(yōu)勢,使得高清視頻的應(yīng)用更加廣泛和便捷。 關(guān)鍵要素: 數(shù)字信號處理 :SDI轉(zhuǎn)AV轉(zhuǎn)換器在轉(zhuǎn)換過程中首先需要對SDI信號進行數(shù)字信號處理。這包括解碼、降噪、色彩空間
    的頭像 發(fā)表于 02-22 15:03 ?496次閱讀

    verilog函數(shù)和任務(wù)對比

    在verilog函數(shù)和任務(wù)均用來描述共同的代碼段,并且在模式內(nèi)任意位置被調(diào)用,提高代碼效率,讓代碼更加的直觀,提高代碼可讀性。但是在實際使用的過程,函數(shù)和任務(wù)也存在諸多的不同,下
    的頭像 發(fā)表于 02-12 18:43 ?810次閱讀

    ELF 1技術(shù)貼|如何移植OpenCV

    ,OpenCV擁有了豐富的常用圖像處理函數(shù)庫,采用C/C++語言編寫,可以運行在Linux、Windows、Mac等操作系統(tǒng)上流暢運行,并能夠快速實現(xiàn)一系列圖像處理和識別任
    的頭像 發(fā)表于 01-09 13:55 ?328次閱讀
    ELF 1技術(shù)貼|如何移植<b class='flag-5'>OpenCV</b>

    excelxlookup函數(shù)怎么使用

    XLOOKUP函數(shù)是Excel的一種查找函數(shù),用于在指定的數(shù)據(jù)區(qū)域中查找并返回與給定條件匹配的值。它是Excel 365新增的函數(shù),通常
    的頭像 發(fā)表于 12-03 10:16 ?1970次閱讀

    深入了解Excel的SUMIF函數(shù)

    Excel是一款廣泛應(yīng)用于辦公和數(shù)據(jù)分析的軟件,在眾多的內(nèi)置函數(shù),SUMIF函數(shù)是一個非常重要且常用的函數(shù)之一。本文將詳盡地介紹SUMIF函數(shù)
    的頭像 發(fā)表于 11-30 16:41 ?1873次閱讀

    對于形狀近似矩形但邊緣有規(guī)則起伏的情況,可以使用OpenCV的approxPolyDP函數(shù)進行多邊形擬合和矩形檢測。

    對于形狀近似矩形但邊緣有規(guī)則起伏的情況,可以使用OpenCV的approxPolyDP函數(shù)進行多邊形擬合和矩形檢測。 approxPolyDP函數(shù)通過在給定的點集上使用動態(tài)規(guī)劃算法
    發(fā)表于 11-01 09:23