一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

圖像處理的顏色空間及其OpenCV實現(xiàn)

智能感知與物聯(lián)網(wǎng)技術(shù)研究所 ? 來源:通信信號處理研究所 ? 作者:通信信號處理研究 ? 2020-12-25 11:36 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

對圖像的顏色空間做了一個概念性的介紹,并通過代碼的方式可視化了每種顏色空間的每個通道所表示的意義。

文章內(nèi)容包括:

什么是顏色空間?

顏色空間有哪些類別?

如何在OpenCV中實現(xiàn)?

什么是顏色空間?

顏色是一種連續(xù)的現(xiàn)象,它意味著有無數(shù)種顏色。但是,人類的眼睛和感知能力是有限的。所以,為了識別這些顏色,我們需要一種媒介或這些顏色的表示,這種顏色的表示被稱為色彩空間。在技術(shù)術(shù)語中,一個顏色模型或顏色空間是一個特定的3-D坐標系統(tǒng)以及該系統(tǒng)中的一個子空間,其中每一種顏色都由一個單點表示。

有哪些顏色空間的類型?

目前主要有五種類型的顏色模型。但是,我將只寫一些常見的(RGB、HSV和HSL)。

RGB(Red Green Blue)

HSL(Hue Saturation Lightness)

HSV(Hue Saturation Value)

YUV(Luminance, blue–luminance, red–luminance)

CMYK(Cyan, Magenta, Yellow, Key)

RGB顏色空間:

RGB顏色空間是三維坐標系中紅、綠、藍坐標所表示的著名顏色空間之一。在更專業(yè)的術(shù)語中,RGB將顏色描述為由三個部分組成的元組。每個部分都可以取0到255之間的值,其中元組(0,0,0)表示黑色,元組(255,255,255)表示白色。元組的第0、第1和第2個部分分別表示紅、綠、藍的分量。

RGB顏色空間的Python實現(xiàn):

這里我們導入了必要的庫,cv2用于顏色空間轉(zhuǎn)換,NumPy用于數(shù)組操作,Matplotlib用于顯示圖像,os用于訪問圖像目錄,tqdm用于顯示加載欄。

hsl_img=cv2.cvtColor(X[0],cv2.COLOR_BGR2HLS)####CONVERTINGBGRCOLORSPACEINTOHSLCOLORSPACE####
hsl_img_1=hsl_img.copy()
hsl_img_2=hsl_img.copy()
hsl_img_3=hsl_img.copy()
hsl_img_1[:,:,1]=0####HUE-->ZERO####
hsl_img_1[:,:,2]=0
hsl_img_2[:,:,0]=0####SATURATION-->ZERO####
hsl_img_2[:,:,2]=0
hsl_img_3[:,:,0]=0####LIGHTNESS-->ZERO####
hsl_img_3[:,:,1]=0

設(shè)置兩個空列表Z和X,分別用于存儲帶有各自圖像的標簽,然后指定圖像大小和路徑目錄。在這之后,我定義了兩個函數(shù),用于返回flower類型(assign_lable)和訪問每個圖像、讀取和調(diào)整其大小(make_train_data)。

Z,X=[],[]
IMG_SIZE=150
FLOWER_SUNFLOWER_DIR='../input/flowers-recognition/flowers/flowers/sunflower'

defassign_label(img,flower_type):
returnflower_type

defmake_train_data(flower_type,DIR):
forimgintqdm(os.listdir(DIR)):
label=assign_label(img,flower_type)
path=os.path.join(DIR,img)
img=cv2.imread(path,cv2.IMREAD_COLOR)
img=cv2.resize(img,(IMG_SIZE,IMG_SIZE))#Resizingtheimage

加載圖像,然后在OpenCV以BGR格式讀取圖像時將BGR顏色空間轉(zhuǎn)換為RGB顏色空間,但Maplotlib使用RGB格式來顯示圖像。這就是為什么我們需要轉(zhuǎn)換顏色空間后,讀取圖像為RGB。

然后對固定圖像進行三份拷貝,并將每份拷貝的任何雙色通道設(shè)為零,分別用于訪問紅、綠、藍通道。如果你讓第0個顏色通道都是0那么你只會得到藍色通道。

make_train_data('Sunflower',FLOWER_SUNFLOWER_DIR)#####LoadingSunflowerData
fix_img=cv2.cvtColor(X[0],cv2.COLOR_BGR2RGB)###########CONVERTINGBGRCOLORSPACEINTORGBCOLORSPACE#########
new_img_1=fix_img.copy()
new_img_2=fix_img.copy()
new_img_3=fix_img.copy()
new_img_1[:,:,0]=0#makingRchannelzero####ForBLUEchannel#####
new_img_1[:,:,1]=0#makingGchannelzero
new_img_2[:,:,1]=0####ForREDcolorChannel####
new_img_2[:,:,2]=0
new_img_3[:,:,0]=0###ForGREENChannel####
new_img_3[:,:,2]=0

顯示圖像:

f,axes=plt.subplots(1,3,figsize=(15,15))
list=[new_img_1,new_img_2,new_img_3]
i=0
foraxinaxes:
ax.imshow(list[i])
i+=1

HSL顏色空間:

HSL的一般含義是色調(diào)、飽和度和明度。你可以將HSL以圓柱體的形式可視化,如圖2(a)所示。圍繞圓柱體的是不同的顏色,比如綠色、黃色、紅色等等(我們真正想要的顏色)。飽和度是指顏色的多少,而明度是指顏色有多暗或多亮。正如你所看到的,圓柱體的頂部全是白色,底部全是黑色。

圖2:HSL顏色空間

HSL顏色空間的Python實現(xiàn):

使用OpenCV函數(shù)**cvtColor()**將BGR顏色空間轉(zhuǎn)換為HSL顏色空間,在這里我們需要傳遞圖像,以及從哪個顏色空間到哪個顏色空間我們想要改變圖像。然后再復制并使兩個顏色通道為零,以便分別顯示每個顏色通道。

hsl_img=cv2.cvtColor(X[0],cv2.COLOR_BGR2HLS)####CONVERTINGBGRCOLORSPACEINTOHSLCOLORSPACE####
hsl_img_1=hsl_img.copy()
hsl_img_2=hsl_img.copy()
hsl_img_3=hsl_img.copy()
hsl_img_1[:,:,1]=0####HUE-->ZERO####
hsl_img_1[:,:,2]=0
hsl_img_2[:,:,0]=0####SATURATION-->ZERO####
hsl_img_2[:,:,2]=0
hsl_img_3[:,:,0]=0####LIGHTNESS-->ZERO####
hsl_img_3[:,:,1]=0

現(xiàn)在顯示三個不同的顏色通道→

f,axes=plt.subplots(1,3,figsize=(15,15))
list=[hsl_img_1,hsl_img_2,hsl_img_3]
i=0
foraxinaxes:
ax.imshow(list[i])
i+=1

HSV顏色空間:

HSV這個名字來自于顏色模型的三個坐標,即色相、飽和度和值。它也是一個圓柱形的顏色模型,圓柱體的半徑表示飽和度,垂直軸表示值,角度表示色調(diào)。對于觀察者,色調(diào)是占主導地位的,飽和度是混合到色調(diào)中的白光的數(shù)量,value是chrome的強度,value較低顏色變得更加類似于黑色,value越高,顏色變得更加像顏色本身。通過改變這些參數(shù),我們可以生成不同的顏色。

圖3:HSV顏色空間

HSV顏色空間的Python實現(xiàn):

使用cvtColor()函數(shù)將色彩空間轉(zhuǎn)換為HSV色彩空間。然后再復制并使兩個通道置為零,以便分別顯示每個通道。

hsv_img=cv2.cvtColor(X[0],cv2.COLOR_BGR2HSV)
hsv_img_1=hsv_img.copy()
hsv_img_2=hsv_img.copy()
hsv_img_3=hsv_img.copy()
hsv_img_1[:,:,1]=0#HUE-->ZERO
hsv_img_1[:,:,2]=0
hsv_img_2[:,:,0]=0#SATURATION-->ZERO
hsv_img_2[:,:,2]=0
hsv_img_3[:,:,0]=0#VALUE-->ZERO
hsv_img_3[:,:,1]=0

單獨顯示每個顏色通道:

原文標題:解析丨圖像處理基礎(chǔ):顏色空間及其OpenCV實現(xiàn)

文章出處:【微信公眾號:通信信號處理研究所】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

責任編輯:haq

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

    關(guān)注

    27

    文章

    1329

    瀏覽量

    58069

原文標題:解析丨圖像處理基礎(chǔ):顏色空間及其OpenCV實現(xiàn)

文章出處:【微信號:tyutcsplab,微信公眾號:智能感知與物聯(lián)網(wǎng)技術(shù)研究所】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    itop-3568開發(fā)板機器視覺opencv開發(fā)手冊-圖像繪制-畫線

    參數(shù)為待繪制的圖像; pt1 為線段的起點; pt2 為線段的終點; color 為形狀的顏色,用元組表示,例如(255,0,0)表示; thickness 為線條的粗細,-1 為填充模式,默認值為 1
    發(fā)表于 06-04 10:38

    基于LockAI視覺識別模塊:C++使用圖像的統(tǒng)計信息

    中感興趣的區(qū)域,通常用于局部分析或處理。 提取 ROI 的目的是減少數(shù)據(jù)量并專注于特定區(qū)域,從而提高處理效率。 1.2 顏色空間轉(zhuǎn)換 不同的顏色
    發(fā)表于 05-08 10:31

    使用OpenCV保存從攝像頭捕獲的視頻時更改顏色輸出視頻收到警告怎么解決?

    保存了從配備 OpenCV* 的攝像頭捕獲的視頻。 生成更改的顏色輸出視頻。 收到警告:[ INFO:0] global .。/opencv/modules/core/src/utils
    發(fā)表于 03-05 07:20

    THS8200出來的視頻圖像是YPbPr格式,但是顯示顏色不對,如何處理?

    出來的視頻圖像是YPbPr格式,但是顯示顏色不對,亮度信號里有彩色信號,請問該如何處理。盼復!
    發(fā)表于 02-13 06:29

    FPGA圖像處理基礎(chǔ)----實現(xiàn)緩存卷積窗口

    像素行與像素窗口 一幅圖像是由一個個像素點構(gòu)成的,對于一幅480*272大小的圖片來說,其寬度是480,高度是272。在使用FPGA進行圖像處理時,最關(guān)鍵的就是使用FPGA內(nèi)部的存儲資源對像
    的頭像 發(fā)表于 02-07 10:43 ?831次閱讀
    FPGA<b class='flag-5'>圖像</b><b class='flag-5'>處理</b>基礎(chǔ)----<b class='flag-5'>實現(xiàn)</b>緩存卷積窗口

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

    1 簡介 Opencv(Open Source Computer Vision Library)是一個基于開源發(fā)行的跨平臺計算機視覺庫,它實現(xiàn)圖像處理和計算機視覺方面的很多通用算法,
    發(fā)表于 12-14 09:31

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

    1簡介Opencv(OpenSourceComputerVisionLibrary)是一個基于開源發(fā)行的跨平臺計算機視覺庫,它實現(xiàn)圖像處理和計算機視覺方面的很多通用算法,已成為計算機
    的頭像 發(fā)表于 12-14 09:10 ?908次閱讀
    AI模型部署邊緣設(shè)備的奇妙之旅:如何在邊緣端部署<b class='flag-5'>OpenCV</b>

    【AI實戰(zhàn)項目】基于OpenCV的“顏色識別項目”完整操作過程

    適用于哪些場景,然后通過Python編寫代碼來實現(xiàn)這些算法,并應用于實際項目中,實現(xiàn)圖像的檢測、識別、分類、定位、測量等目標。華清遠見【python+OpenCV
    的頭像 發(fā)表于 12-09 16:42 ?1424次閱讀
    【AI實戰(zhàn)項目】基于<b class='flag-5'>OpenCV</b>的“<b class='flag-5'>顏色</b>識別項目”完整操作過程

    傅立葉變換在圖像處理中的作用

    傅里葉變換在圖像處理中發(fā)揮著至關(guān)重要的作用。以下是傅里葉變換在圖像處理中的幾個主要作用: 一、圖像增強與去噪 去噪 :
    的頭像 發(fā)表于 12-06 16:55 ?2309次閱讀

    基于OpenCV的拆分和合并圖像通道實驗案例分享_基于RK3568教學實驗箱

    一、實驗目的 本節(jié)視頻的目的是了解圖像通道的概念,學習OpenCV的基本操作,并掌握通過OpenCV實現(xiàn)拆分和合并圖像通道的方法。 二、實驗
    發(fā)表于 12-03 14:27

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

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

    一個月速成python+OpenCV圖像處理

    適用于哪些場景,然后通過Python編寫代碼來實現(xiàn)這些算法,并應用于實際項目中,實現(xiàn)圖像的檢測、識別、分類、定位、測量等目標。本文將介紹一個高效學習Python+O
    的頭像 發(fā)表于 11-29 18:27 ?463次閱讀
    一個月速成python+<b class='flag-5'>OpenCV</b><b class='flag-5'>圖像</b><b class='flag-5'>處理</b>

    OpenCV教程之OpenCV圖像閾值處理

    閾值的基本概念是為了簡化圖像以進行分析。當我們將圖像轉(zhuǎn)換為灰度圖像時,必須記住灰度圖像仍然至少有255個值。閾值是將所有內(nèi)容轉(zhuǎn)換為白色或黑色的值,基于閾值。假設(shè)我們希望閾值為125(2
    的頭像 發(fā)表于 11-16 10:16 ?647次閱讀
    <b class='flag-5'>OpenCV</b>教程之<b class='flag-5'>OpenCV</b><b class='flag-5'>圖像</b>閾值<b class='flag-5'>處理</b>

    手寫圖像模板匹配算法在OpenCV中的實現(xiàn)

    OpenCV中的模板匹配是支持基于NCC相似度查找的,但是不是很好用,一個主要的原因是查找最大閾值,只能匹配一個,自己比對閾值,又導致無法正確設(shè)定閾值范圍,所以問題很多。于是我重新寫了純Python版本的NCC圖像模板匹配的代碼實現(xiàn)
    的頭像 發(fā)表于 11-11 10:12 ?773次閱讀
    手寫<b class='flag-5'>圖像</b>模板匹配算法在<b class='flag-5'>OpenCV</b>中的<b class='flag-5'>實現(xiàn)</b>

    盛顯科技:投影融合處理器如何實現(xiàn)圖像處理和融合?

    相信大家都知道,投影融合處理實現(xiàn)融合投影功能的過程是一個復雜但高度專業(yè)化的技術(shù)過程,它主要依賴于先進的投影技術(shù)和圖像融合技術(shù),精妙地結(jié)合了尖端的投影技術(shù)與精細的圖像融合算法。那么您知
    的頭像 發(fā)表于 09-26 18:14 ?683次閱讀
    盛顯科技:投影融合<b class='flag-5'>處理</b>器如何<b class='flag-5'>實現(xiàn)</b><b class='flag-5'>圖像</b>的<b class='flag-5'>處理</b>和融合?