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

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

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

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

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

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


一:RGB

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

因?yàn)槿搜垡彩怯扇N感光細(xì)胞構(gòu)成,因此RGB我們是最熟悉的,比如在電競的時(shí)候,使用RGB燈可以刺激人的感官,提升成績。

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


二:灰度

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

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

每個(gè)像素值只表示灰度信息這一單一信息

RGB[A]準(zhǔn)換成灰度: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ù)來實(shí)現(xiàn)轉(zhuǎn)換

結(jié)果如下:


三:HSV

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

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

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

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

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

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


四:YCRCB

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

其變化的計(jì)算如下:

在OpenCV中,我們使用:

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

總體來看,還是可以看得出相對于其他的色彩模型,還是能夠保留一定的色彩,但是因?yàn)閴嚎s的緣故,色彩空間還是差很多。

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

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是自動(dòng)大小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()

責(zé)任編輯:xj

原文標(biāo)題:【CV學(xué)習(xí)筆記】色彩空間

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

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

    關(guān)注

    0

    文章

    51

    瀏覽量

    16792
  • OpenCV
    +關(guān)注

    關(guān)注

    29

    文章

    622

    瀏覽量

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

    關(guān)注

    0

    文章

    10

    瀏覽量

    2586

原文標(biāo)題:【CV學(xué)習(xí)筆記】色彩空間

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

收藏 人收藏

    評論

    相關(guān)推薦

    OpenCV圖像識(shí)別C++代碼

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

    opencv-python和opencv一樣嗎

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

    opencv的主要功能有哪些

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

    OpenCV攜奧比光3D相機(jī)亮相CVPR 2024

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

    嵌入式學(xué)習(xí)-飛凌ElfBoard ELF 1板卡 - 如何在Ubuntu編譯OpenCV

    在之前發(fā)布的文章探討了交叉編譯OpenCV并部署至嵌入式系統(tǒng)的方法。然而,在調(diào)試階段,我們發(fā)現(xiàn)在 Ubuntu 環(huán)境下將 OpenCV 編譯為 X86 架構(gòu)可能更加方便和高效。 通過在主機(jī)上編譯并
    發(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)可能更加方便和高效。通過在主機(jī)上編譯并使用X86架構(gòu)
    的頭像 發(fā)表于 05-31 16:41 ?1034次閱讀
    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

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

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

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

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

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

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

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

    ,OpenCV擁有了豐富的常用圖像處理函數(shù)庫,采用C/C++語言編寫,可以運(yùn)行在Linux、Windows、Mac等操作系統(tǒng)上流暢運(yùn)行,并能夠快速實(shí)現(xiàn)一系列圖像處理和識(shí)別任
    的頭像 發(fā)表于 01-09 13:55 ?289次閱讀
    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 ?1661次閱讀

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

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

    OpenCV 如何加載圖片

    之前也寫過一些 OpenCV 的文章,最近正好在考慮 寫一個(gè) OpenCV相關(guān)的工具,目前還是在開發(fā)過程,邊開發(fā)邊更新。預(yù)計(jì)會(huì)持續(xù)一段時(shí)間。目前的想法是把 OpenCV 的 API
    的頭像 發(fā)表于 10-09 15:01 ?602次閱讀

    Linux虛擬地址空間和物理地址空間的關(guān)系

    很多人接觸Linux的內(nèi)存管理是從malloc()這個(gè)C語言庫函數(shù)開始,也是從那時(shí)開始就知道了虛擬內(nèi)存的概念。但很多人可能并不知道虛擬地址是如何轉(zhuǎn)換成物理地址的,今天帶你搞懂虛擬地址到物理地址的轉(zhuǎn)換
    的頭像 發(fā)表于 10-08 11:40 ?913次閱讀
    Linux虛擬地址<b class='flag-5'>空間</b>和物理地址<b class='flag-5'>空間</b>的關(guān)系