<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          圖像處理基礎(chǔ):顏色空間及其OpenCV實(shí)現(xiàn)

          共 4454字,需瀏覽 9分鐘

           ·

          2020-12-12 20:25

          點(diǎn)擊上方AI算法與圖像處理”,選擇加"星標(biāo)"或“置頂

          重磅干貨,第一時(shí)間送達(dá)


          作者:Soumyadip Sarkar

          編譯:ronghuaiyang

          轉(zhuǎn)自:AI公園

          導(dǎo)讀

          對(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)。

          1. RGB(Red Green Blue)
          2. HSL(Hue Saturation Lightness)
          3. HSV(Hue Saturation Value)
          4. YUV(Luminance, blue–luminance, red–luminance)
          5. 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)??####?CONVERTING?BGR?COLOR?SPACE?INTO?HSL?COLOR?SPACE??####
          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'

          def?assign_label(img,flower_type):
          ????return?flower_type

          def?make_train_data(flower_type,DIR):
          ????for?img?in?tqdm(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))#Resizing?the?image

          加載圖像,然后在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)??#####Loading?Sunflower?Data
          fix_img?=?cv2.cvtColor(X[0],cv2.COLOR_BGR2RGB)????###########CONVERTING?BGR?COLOR?SPACE?INTO?RGB?COLOR?SPACE?#########
          new_img_1?=?fix_img.copy()?
          new_img_2?=?fix_img.copy()
          new_img_3?=?fix_img.copy()
          new_img_1[:,:,0]?=?0?#?making?R?channel?zero????####For?BLUE?channel#####
          new_img_1[:,:,1]?=?0?#making?G?channel?zero
          new_img_2[:,:,1]?=?0####For?RED?color?Channel####
          new_img_2[:,:,2]?=?0
          new_img_3[:,:,0]?=?0###For?GREEN?Channel####
          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
          for?ax?in?axes:
          ????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)??####?CONVERTING?BGR?COLOR?SPACE?INTO?HSL?COLOR?SPACE??####
          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
          for?ax?in?axes:
          ????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è)顏色通道:


          英文原文:https://medium.com/analytics-vidhya/image-processing-series-part1-colorspaces-836d2e3ca700


          ?End?


          聲明:部分內(nèi)容來(lái)源于網(wǎng)絡(luò),僅供讀者學(xué)術(shù)交流之目的。文章版權(quán)歸原作者所有。如有不妥,請(qǐng)聯(lián)系刪除。


          下載1:何愷明頂會(huì)分享


          AI算法與圖像處理」公眾號(hào)后臺(tái)回復(fù):何愷明,即可下載。總共有6份PDF,涉及 ResNet、Mask RCNN等經(jīng)典工作的總結(jié)分析


          下載2:leetcode?開(kāi)源


          AI算法與圖像處理」公眾號(hào)后臺(tái)回復(fù):leetcode,即可下載。每題都 runtime beats 100% 的開(kāi)源好書,你值得擁有!



          下載3 CVPR2020

          AI算法與圖像處公眾號(hào)后臺(tái)回復(fù):CVPR2020,即可下載1467篇CVPR?2020論文
          個(gè)人微信(如果沒(méi)有備注不拉群!
          請(qǐng)注明:地區(qū)+學(xué)校/企業(yè)+研究方向+昵稱


          覺(jué)得不錯(cuò)就點(diǎn)亮在看吧

          瀏覽 76
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  中文字幕在线观看免费视频 | 中文字幕一级片 | 婬荡的寡妇一区二区三区 | 欧美黑人一级A片免费看 | 大香蕉人在线 |