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

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

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

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

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

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


一:RGB

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

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

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


二:灰度

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

彩色轉換為灰度圖像的計算方法如下:

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

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

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

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

結果如下:


三:HSV

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

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

關于HSV的計算可以參考以下的公式:

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

得到的結果如下:

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


四:YCRCB

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

其變化的計算如下:

在OpenCV中,我們使用:

得到的結果如下:

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

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

import cv2 as cvimport numpy as np#色彩空間轉換函數(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)#結束所有的窗口cv.destroyAllWindows()

責任編輯:xj

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

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

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

    關注

    0

    文章

    53

    瀏覽量

    16945
  • OpenCV
    +關注

    關注

    31

    文章

    636

    瀏覽量

    41815
  • HSV
    HSV
    +關注

    關注

    0

    文章

    10

    瀏覽量

    2641

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

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

收藏 人收藏

    評論

    相關推薦

    西門子TIA Portal函數(shù)FC和函數(shù)塊FB的相互轉換

    描述 本文將介紹在西門子 TIA Portal 中使用 Add-In 插件實現(xiàn)函數(shù) FC 和函數(shù)塊 FB 的相互轉換的方法和步驟。 第1步: 添加 PLC 設備。 選擇西門子 CPU 1214C
    的頭像 發(fā)表于 01-15 10:07 ?760次閱讀
    西門子TIA Portal<b class='flag-5'>中</b><b class='flag-5'>函數(shù)</b>FC和<b class='flag-5'>函數(shù)</b>塊FB的相互<b class='flag-5'>轉換</b>

    FRED應用:偏振分色顯示空間光譜分布

    這個例子說明了光通過雙折射元件會造成空間色彩分離。偏振白光入射到一個用方解石(一種單軸晶體)做的簡單鏡頭上,匯聚的光束繼續(xù)通過波片和偏振元器件上,被屏幕攔截。FRED的彩色圖像特征用來顯示空間光譜
    發(fā)表于 01-13 10:00

    AI模型部署邊緣設備的奇妙之旅:如何在邊緣端部署OpenCV

    () 函數(shù)加載圖像。 目的:為后續(xù)處理和分析準備圖像數(shù)據(jù)。 轉換色彩空間 使用 cv2.cvtColor() 進行色彩
    發(fā)表于 12-14 09:31

    RK3568 + OpenCV 會碰撞出什么火花?案例詳解:2-1 基于OpenCV的畫線實驗

    一系列 C 函數(shù)和少量 C++ 類構成,同時提供了Python、Ruby、MATLAB等語言的接口,實現(xiàn)了圖像處理和計算機視覺方面的很多通用算法。 OpenCV具有以下特點: 不管是科學研究,還是商業(yè)
    發(fā)表于 12-03 14:09

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

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

    【龍芯2K0300蜂鳥板試用】5 搭建opencv開發(fā)環(huán)境

    在官方提供的buildroot根文件系統(tǒng),不支持opencv庫,故需要自己增加,另外,在本地編譯的時候,需要在本地(ubuntu)上安裝對應opencv庫,這樣才能將編譯好的鏡像放到板子上跑起來
    發(fā)表于 08-27 15:08

    OpenCV圖像識別C++代碼

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

    opencv-python和opencv一樣嗎

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

    opencv的主要功能有哪些

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

    神經(jīng)網(wǎng)絡激活函數(shù)的定義及類型

    詳細介紹激活函數(shù)的定義、類型。 激活函數(shù)的定義和基本功能 2.1 定義 激活函數(shù)(Activation Function)是神經(jīng)網(wǎng)絡的一種非線性
    的頭像 發(fā)表于 07-02 10:09 ?854次閱讀

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

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

    I.MX6ULL-飛凌 ElfBoard ELF1板卡 - 如何在Ubuntu編譯OpenCV庫(X86架構)

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

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

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

    ELF 1技術貼|如何在Ubuntu編譯OpenCV

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

    STM32MP135如何使用opencv-python或v4l2-ctl打開攝像頭,并保存為圖片?

    如題,我在使用v4l2-ctl和opencv的時候,打開攝像頭保存是可以,但是保存出來的圖片都很有問題 比如 或者圖片上半部分是被壓扁的不知道什么色彩的圖片,下面全是灰色 我嘗試過用opencv
    發(fā)表于 05-30 06:16