最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python+OpenCV圖像處理—— 色彩空間轉(zhuǎn)換

 更新時間:2020年10月22日 10:36:09   作者:蛋片雞  
這篇文章主要介紹了Python+OpenCV如何對圖片進(jìn)行色彩空間轉(zhuǎn)換,幫助大家更好的利用python處理圖片,感興趣的朋友可以了解下下

一、色彩空間的轉(zhuǎn)換

代碼如下:

#色彩空間轉(zhuǎn)換
import cv2 as cv
def color_space_demo(img):
  gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY) #RGB轉(zhuǎn)換為GRAY 這里的GRAY是單通道的
  cv.imshow("gray", gray)
  hsv = cv.cvtColor(img, cv.COLOR_BGR2HSV)   #RGB轉(zhuǎn)換為HSV
  cv.imshow("hsv", hsv)
  yuv = cv.cvtColor(img, cv.COLOR_RGB2YUV)   #RGB轉(zhuǎn)換為YUV
  cv.imshow("yuv",yuv)
  Ycrcb = cv.cvtColor(img, cv.COLOR_RGB2YCrCb) #RGB轉(zhuǎn)換為YCrCb
  cv.imshow("Ycrcb", Ycrcb)
src = cv.imread('D:\imageload\example.png')
cv.namedWindow('first_image', cv.WINDOW_AUTOSIZE)
cv.imshow('first_image', src)
color_space_demo(src)
cv.waitKey(0)
cv.destroyAllWindows()

運(yùn)行結(jié)果:

1.RGB就是指Red,Green和Blue,一副圖像由這三個channel(通道)構(gòu)成

2.Gray就是只有灰度值一個channel。

3.HSV即Hue(色調(diào)),Saturation(飽和度)和Value(亮度)三個channel

切記(純屬個人理解):

1.百度百科說,將原來的RGB(R,G,B)中的R,G,B統(tǒng)一按照一種轉(zhuǎn)換關(guān)系用Gray替換,形成新的顏色RGB(Gray,Gray,Gray),用它替換原來的RGB(R,G,B)就是灰度圖。

2.opencv里,COLOR_RGB2GRAY是將三通道RGB對象轉(zhuǎn)換為單通道的灰度對象。

3.將單通道灰度對象轉(zhuǎn)換為 RGB 時,生成的RGB對象的每個通道的值是灰度對象的灰度值。

RGB是為了讓機(jī)器更好的顯示圖像,對于人類來說并不直觀,HSV更為貼近我們的認(rèn)知,所以通常我們在針對某種顏色做提取時會轉(zhuǎn)換到HSV顏色空間里面來處理. 

補(bǔ)注:

1.HSV如下圖:

2.opencv里HSV色彩空間范圍為: H:0-180  S: 0-255   V: 0-255

3.常見的色彩空間有RGB、HSV、HIS、YCrCb、YUV,其中最常用的是RGB、HSV、YUV,其中YUV就是YCrCb(詳見百度百科)。其中YUV的“Y”表示明亮度(Luminance或Luma),也就是灰階值;而“U”和“V” 表示的則是色度(Chrominance或Chroma),作用是描述影像色彩及飽和度,用于指定像素的顏色。

二、利用inrange函數(shù)過濾視頻中的顏色,實(shí)現(xiàn)對特定顏色的追蹤

代碼如下:

#視頻特定顏色追蹤
import cv2 as cv
import numpy as np
def extrace_object_demo():
  capture=cv.VideoCapture("E:/imageload/video_example.mp4")
  while True:
    ret, frame = capture.read()
    if ret == False:
      break
    hsv = cv.cvtColor(frame, cv.COLOR_BGR2HSV)   #色彩空間由RGB轉(zhuǎn)換為HSV
    lower_hsv = np.array([100, 43, 46])       #設(shè)置要過濾顏色的最小值
    upper_hsv = np.array([124, 255, 255])      #設(shè)置要過濾顏色的最大值
    mask = cv.inRange(hsv, lower_hsv, upper_hsv)  #調(diào)節(jié)圖像顏色信息(H)、飽和度(S)、亮度(V)區(qū)間,選擇藍(lán)色區(qū)域
    cv.imshow("video",frame)
    cv.imshow("mask", mask)
    c = cv.waitKey(40)
    if c == 27:   #按鍵Esc的ASCII碼為27
      break
extrace_object_demo()
cv.destroyAllWindows()

運(yùn)行結(jié)果:

這里只放追蹤藍(lán)色部分的截圖,僅供參考

注意:

1.Opencv的inRange函數(shù):可實(shí)現(xiàn)二值化功能

函數(shù)原型:inRange(src,lowerb, upperb[, dst]) -> dst         

  函數(shù)的參數(shù)意義:第一個參數(shù)為原數(shù)組,可以為單通道,多通道。第二個參數(shù)為下界,第三個參數(shù)為上界

例如:mask = cv2.inRange(hsv, lower_blue, upper_blue)      

  第一個參數(shù):hsv指的是原圖(原始圖像矩陣)

  第二個參數(shù):lower_blue指的是圖像中低于這個lower_blue的值,圖像值變?yōu)?55

  第三個參數(shù):upper_blue指的是圖像中高于這個upper_blue的值,圖像值變?yōu)?55 (255即代表黑色)

  而在lower_blue~upper_blue之間的值變成0 (0代表白色)

即:Opencv的inRange函數(shù)可提取特定顏色,使特定顏色變?yōu)榘咨?,其他顏色變?yōu)楹谏@樣就實(shí)現(xiàn)了二值化功能

2.HSV顏色對應(yīng)的RGB分量范圍表如下:(這里是三通道的)

三、通道的分離、合并以及某個通道值的修改

代碼如下:

#通道的分離與合并以及某個通道值的修改
import cv2 as cv
src=cv.imread('E:\imageload\example.png')
cv.namedWindow('first_image', cv.WINDOW_AUTOSIZE)
cv.imshow('first_image', src)

#三通道分離形成單通道圖片
b, g, r =cv.split(src)
cv.imshow("second_blue", b)
cv.imshow("second_green", g)
cv.imshow("second_red", r)
# 其中cv.imshow("second_red", r)可表示為r = cv2.split(src)[2]

#三個單通道合成一個三通道圖片
src = cv.merge([b, g, r])
cv.imshow('changed_image', src)

#修改多通道里的某個通道的值
src[:, :, 2] = 0
cv.imshow('modify_image', src)

cv.waitKey(0)
cv.destroyAllWindows()

注意:

1.這里用到了opencv的split函數(shù)和merge函數(shù),實(shí)現(xiàn)通道的分離和合并。

2.cv.split函數(shù)分離出的b、g、r是單通道圖像

以上就是Python+OpenCV圖像處理—— 色彩空間轉(zhuǎn)換的詳細(xì)內(nèi)容,更多關(guān)于Python+OpenCV圖像處理的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 基于Python實(shí)現(xiàn)人機(jī)PK小游戲

    基于Python實(shí)現(xiàn)人機(jī)PK小游戲

    這篇文章主要為大家詳細(xì)介紹了如何基于Python實(shí)現(xiàn)人機(jī)PK小游戲,簡單來說,就是隨機(jī)生成玩家和敵人的屬性,同時互相攻擊,直至一方血量小于零,感興趣的小伙伴可以學(xué)習(xí)一下
    2023-06-06
  • 如何利用python批量提取txt文本中所需文本并寫入excel

    如何利用python批量提取txt文本中所需文本并寫入excel

    最近幫人寫了幾個小程序,所以記錄下,下面這篇文章主要給大家介紹了關(guān)于如何利用python批量提取txt文本中所需文本并寫入excel的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • Python使用Transformers實(shí)現(xiàn)機(jī)器翻譯功能

    Python使用Transformers實(shí)現(xiàn)機(jī)器翻譯功能

    近年來,機(jī)器翻譯技術(shù)飛速發(fā)展,從傳統(tǒng)的基于規(guī)則的翻譯到統(tǒng)計(jì)機(jī)器翻譯,再到如今流行的神經(jīng)網(wǎng)絡(luò)翻譯模型,尤其是基于Transformer架構(gòu)的模型,翻譯效果已經(jīng)有了質(zhì)的飛躍,本文將詳細(xì)介紹如何使用Transformers庫來實(shí)現(xiàn)一個機(jī)器翻譯模型,需要的朋友可以參考下
    2024-11-11
  • Python基于numpy模塊實(shí)現(xiàn)回歸預(yù)測

    Python基于numpy模塊實(shí)現(xiàn)回歸預(yù)測

    這篇文章主要介紹了Python基于numpy模塊實(shí)現(xiàn)回歸預(yù)測,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-05-05
  • mac在matplotlib中顯示中文的操作方法

    mac在matplotlib中顯示中文的操作方法

    這篇文章主要介紹了mac如何在matplotlib中顯示中文,本文分步驟給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-03-03
  • selenium在執(zhí)行phantomjs的API并獲取執(zhí)行結(jié)果的方法

    selenium在執(zhí)行phantomjs的API并獲取執(zhí)行結(jié)果的方法

    今天小編就為大家分享一篇selenium在執(zhí)行phantomjs的API并獲取執(zhí)行結(jié)果的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • 解決Django一個表單對應(yīng)多個按鈕的問題

    解決Django一個表單對應(yīng)多個按鈕的問題

    今天小編就為大家分享一篇解決Django一個表單對應(yīng)多個按鈕的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • Python自動化辦公之定時發(fā)送郵件的實(shí)現(xiàn)

    Python自動化辦公之定時發(fā)送郵件的實(shí)現(xiàn)

    python中的schedule模塊可以使我們方便簡單的使用定時任務(wù),即在特定的時間自動的執(zhí)行一些任務(wù)的功能,本文將用這一模塊實(shí)現(xiàn)郵件自動發(fā)送,需要的可以參考一下
    2022-05-05
  • Python爬蟲實(shí)現(xiàn)抓取京東店鋪信息及下載圖片功能示例

    Python爬蟲實(shí)現(xiàn)抓取京東店鋪信息及下載圖片功能示例

    這篇文章主要介紹了Python爬蟲實(shí)現(xiàn)抓取京東店鋪信息及下載圖片功能,涉及Python頁面請求、響應(yīng)、解析等相關(guān)操作技巧,需要的朋友可以參考下
    2018-08-08
  • Python基礎(chǔ) while循環(huán)與break、continue關(guān)鍵字

    Python基礎(chǔ) while循環(huán)與break、continue關(guān)鍵字

    今天再帶著大家講述一下while循環(huán)。那么for循環(huán)和while循環(huán),到底有什么區(qū)別呢?下面文章就來詳細(xì)介紹,感興趣的小伙伴可以參考一下
    2021-10-10

最新評論

临沭县| 栾城县| 大荔县| 丽江市| 岳普湖县| 广灵县| 咸阳市| 海丰县| 苍南县| 启东市| 海晏县| 菏泽市| 琼中| 夏邑县| 遵义县| 米泉市| 郸城县| 阜新| 特克斯县| 南召县| 临洮县| 宜宾县| 绥德县| 龙南县| 广州市| 台前县| 和平县| 扬中市| 富锦市| 阿尔山市| 大渡口区| 岳阳县| 扎囊县| 肇庆市| 阿拉善盟| 肃北| 赤水市| 商丘市| 晋城| 临城县| 且末县|