91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

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

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

什么是顏色空間?

顏色空間有哪些類別?

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

什么是顏色空間?

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

有哪些顏色空間的類型?

目前主要有五種類型的顏色模型。但是,我將只寫一些常見(jiàn)的(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顏色空間是三維坐標(biāo)系中紅、綠、藍(lán)坐標(biāo)所表示的著名顏色空間之一。在更專業(yè)的術(shù)語(yǔ)中,RGB將顏色描述為由三個(gè)部分組成的元組。每個(gè)部分都可以取0到255之間的值,其中元組(0,0,0)表示黑色,元組(255,255,255)表示白色。元組的第0、第1和第2個(gè)部分分別表示紅、綠、藍(lán)的分量。

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

這里我們導(dǎo)入了必要的庫(kù),cv2用于顏色空間轉(zhuǎn)換,NumPy用于數(shù)組操作,Matplotlib用于顯示圖像,os用于訪問(wèn)圖像目錄,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è)置兩個(gè)空列表Z和X,分別用于存儲(chǔ)帶有各自圖像的標(biāo)簽,然后指定圖像大小和路徑目錄。在這之后,我定義了兩個(gè)函數(shù),用于返回flower類型(assign_lable)和訪問(wèn)每個(gè)圖像、讀取和調(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格式讀取圖像時(shí)將BGR顏色空間轉(zhuǎn)換為RGB顏色空間,但Maplotlib使用RGB格式來(lái)顯示圖像。這就是為什么我們需要轉(zhuǎn)換顏色空間后,讀取圖像為RGB。

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

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實(shí)現(xiàn):

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

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)在顯示三個(gè)不同的顏色通道→

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這個(gè)名字來(lái)自于顏色模型的三個(gè)坐標(biāo),即色相、飽和度和值。它也是一個(gè)圓柱形的顏色模型,圓柱體的半徑表示飽和度,垂直軸表示值,角度表示色調(diào)。對(duì)于觀察者,色調(diào)是占主導(dǎo)地位的,飽和度是混合到色調(diào)中的白光的數(shù)量,value是chrome的強(qiáng)度,value較低顏色變得更加類似于黑色,value越高,顏色變得更加像顏色本身。通過(guò)改變這些參數(shù),我們可以生成不同的顏色。

圖3:HSV顏色空間

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

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

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

單獨(dú)顯示每個(gè)顏色通道:

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

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

責(zé)任編輯:haq

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

    關(guān)注

    29

    文章

    1342

    瀏覽量

    59560

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

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

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    沒(méi)有專利的opencv-python 版本

    功能 圖像基礎(chǔ)操作 讀取/保存(imread/imwrite)、縮放/旋轉(zhuǎn)、裁剪、通道分離/合并 圖像處理 灰度轉(zhuǎn)換、閾值分割、形態(tài)學(xué)操作(腐蝕/膨脹)、模糊(高斯/中值模糊)、銳化 特征檢測(cè)
    發(fā)表于 12-13 12:37

    那些年我用OpenCV+Qt趟過(guò)哪些坑?寫給視覺(jué)應(yīng)用開(kāi)發(fā)者的避坑指南

    基 - 從“能跑”到“可控” 這是很多人忽視,卻決定了項(xiàng)目后期能否維護(hù)的關(guān)鍵。我們得先讓Qt界面和OpenCV圖像“聽(tīng)話”: Qt的界面基礎(chǔ)與核心機(jī)制(信號(hào)槽、布局、自定義控件) 圖像如何在界面中高
    發(fā)表于 12-02 09:43

    零成本鋼鐵俠手套!樹(shù)莓派+OpenCV 秒變手勢(shì)遙控器!

    大家好,這是一個(gè)樹(shù)莓派和OpenCV的連載專題。使用樹(shù)莓派與OpenCV實(shí)現(xiàn)姿態(tài)估計(jì)和面部特征點(diǎn)追蹤使用樹(shù)莓派與OpenCV實(shí)現(xiàn)面部和運(yùn)動(dòng)追
    的頭像 發(fā)表于 08-16 16:16 ?1278次閱讀
    零成本鋼鐵俠手套!樹(shù)莓派+<b class='flag-5'>OpenCV</b> 秒變手勢(shì)遙控器!

    如何使用樹(shù)莓派與OpenCV實(shí)現(xiàn)面部和運(yùn)動(dòng)追蹤的云臺(tái)系統(tǒng)?

    大家好,這是一個(gè)樹(shù)莓派和OpenCV的連載專題。使用樹(shù)莓派與OpenCV實(shí)現(xiàn)姿態(tài)估計(jì)和面部特征點(diǎn)追蹤使用樹(shù)莓派與OpenCV實(shí)現(xiàn)面部和運(yùn)動(dòng)追
    的頭像 發(fā)表于 08-14 17:45 ?1632次閱讀
    如何使用樹(shù)莓派與<b class='flag-5'>OpenCV</b><b class='flag-5'>實(shí)現(xiàn)</b>面部和運(yùn)動(dòng)追蹤的云臺(tái)系統(tǒng)?

    如何使用樹(shù)莓派+OpenCV實(shí)現(xiàn)姿態(tài)估計(jì)和面部特征點(diǎn)追蹤?

    大家好,這是一個(gè)樹(shù)莓派和OpenCV的連載專題。使用樹(shù)莓派與OpenCV實(shí)現(xiàn)姿態(tài)估計(jì)和面部特征點(diǎn)追蹤使用樹(shù)莓派與OpenCV實(shí)現(xiàn)面部和運(yùn)動(dòng)追
    的頭像 發(fā)表于 08-13 17:44 ?1320次閱讀
    如何使用樹(shù)莓派+<b class='flag-5'>OpenCV</b><b class='flag-5'>實(shí)現(xiàn)</b>姿態(tài)估計(jì)和面部特征點(diǎn)追蹤?

    【GM-3568JHF開(kāi)發(fā)板免費(fèi)體驗(yàn)】OpenCV開(kāi)發(fā)環(huán)境安裝和計(jì)數(shù)程序開(kāi)發(fā)

    查看ip SSH鏈接 遠(yuǎn)程登錄賬號(hào)和密碼是linaro 二、安裝Pip管理工具 Sudo apt-get install python3-pip 三、安裝cv2環(huán)境 cv2支持圖像處理(如濾波、邊緣
    發(fā)表于 08-09 13:30

    【GM-3568JHF開(kāi)發(fā)板免費(fèi)體驗(yàn)】OpenCV 視頻目標(biāo)跟蹤 ( CamShift)

    和 CamShift 是兩種經(jīng)典且常用的算法。本文將詳細(xì)講解這兩種算法的原理、實(shí)現(xiàn)步驟以及如何在 OpenCV 中使用它們。 CamShift 算法 1.1 算法原理 CamShift(Continuously
    發(fā)表于 08-09 13:19

    【Milk-V Duo S 開(kāi)發(fā)板免費(fèi)體驗(yàn)】SDK編譯、人臉檢測(cè)、OpenCV測(cè)試

    -mobile-test ./opencv-mobile-test 生成 200x200 尺寸的 out.jpg 圖像,即實(shí)現(xiàn)圖片壓縮。 該測(cè)試工程可結(jié)合物體識(shí)別模型,實(shí)現(xiàn)輸入
    發(fā)表于 07-11 13:48

    itop-3568開(kāi)發(fā)板機(jī)器視覺(jué)opencv開(kāi)發(fā)手冊(cè)-圖像繪制-畫線

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

    基于LockAI視覺(jué)識(shí)別模塊:C++尋找色塊

    ,便于設(shè)置閾值。 1.2 色塊識(shí)別的流程 獲取圖像。 將圖像從 BGR 轉(zhuǎn)換為 HSV 顏色空間。 創(chuàng)建二值掩碼,篩選出符合顏色范圍的像素。
    發(fā)表于 05-12 14:55

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

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

    基于LockAI視覺(jué)識(shí)別模塊:C++圖像的基本運(yùn)算

    圖像處理中,理解圖像的基本操作是掌握計(jì)算機(jī)視覺(jué)技術(shù)的關(guān)鍵。本文章將介紹 基于LockAI視覺(jué)識(shí)別模塊下OpenCV圖像的基本運(yùn)算方法,
    發(fā)表于 05-06 16:56

    基于LockAI視覺(jué)識(shí)別模塊:C++圖像的基本運(yùn)算

    圖像處理中,理解圖像的基本操作是掌握計(jì)算機(jī)視覺(jué)技術(shù)的關(guān)鍵。本文章將介紹基于LockAI視覺(jué)識(shí)別模塊下OpenCV圖像的基本運(yùn)算方法,包括
    的頭像 發(fā)表于 05-06 16:20 ?718次閱讀
    基于LockAI視覺(jué)識(shí)別模塊:C++<b class='flag-5'>圖像</b>的基本運(yùn)算

    基于LockAI視覺(jué)識(shí)別模塊:C++圖像采集例程

    本文主要演示如何使用LockAI視覺(jué)識(shí)別模塊進(jìn)行視頻流的讀取,同時(shí)使用Edit模塊進(jìn)行圖像傳輸?;A(chǔ)知識(shí)講解1.1OpenCV簡(jiǎn)介OpenCV(OpenSourceComputerVisionLibra
    的頭像 發(fā)表于 04-30 18:23 ?757次閱讀
    基于LockAI視覺(jué)識(shí)別模塊:C++<b class='flag-5'>圖像</b>采集例程

    基于LockAI視覺(jué)識(shí)別模塊:C++圖像采集例程

    OpenCV 實(shí)現(xiàn)攝像頭模塊的視頻流讀取與圖像傳輸。核心步驟包括: 初始化攝像頭并設(shè)置分辨率; 打開(kāi)攝像頭并逐幀捕獲圖像; 使用 Edit 模塊進(jìn)行
    發(fā)表于 04-30 10:52