一、影象處理的基本操作
因為這是第一篇寫opencv的筆記,故先講講在python下寫opencv的基本操作。總共總結了三點如下:
開頭一定要加編碼宣告:-*- coding: utf-8 -*-
python下記得引入opencv模組:import cv2
要知道如何讀取並展示,**如下:
# -*- coding: utf-8 -*-
import cv2
import numpy as np
name1=cv2.imread(名稱,如何讀取)#讀取
cv2.imshow(視窗名字,name1)#展示
cv2.waitkey()#這是乙個鍵盤繫結函式,只需記到在cv2.imshow後一定要加上這句.
cv2.destoryallwindows()
二、顏色空間轉化當我們讀取完一張,一般情況下它都是bgr模式。那麼什麼是bgr模式呢?總所周知,色彩中不能再分解的基本色稱之為原色,原色可以合成其他的顏色,而其他顏色卻不能還原出本來的色彩。我們通常說光的三原色,即紅、綠、藍,它們按不同比例的相互混合是可以變成其他所有顏色。不知道你們用過photoshop沒有,裡面的調色盤就是依靠這個bgr原理。
白色:rgb(255,255,255)
黑色:rgb(0,0,0)
紅色:rgb(255,0,0)
綠色:rgb(0,255,0)
藍色:rgb(0,0,255)
青色:rgb(0,255,255)
紫色:rgb(255,0,255)
當然顏色模式不止只有bgr一種,在這裡我再向大家介紹一種模式,它叫hsv。咋一聽,大家是不是以為是在講病毒呢?哈哈,這只是恰巧重名而已,大家莫慌。hsv(hue,saturation,value)是根據顏色的直觀特性由a.r.smith在2023年建立的一種顏色空間,也稱六角錐體模型。這個模型中顏色的引數分別是:色調(h),飽和度(s),亮度(v)。hsv對使用者來說是一種直觀的顏色模型,它與bgr模式有很大的不同。photoshop也有相似的模式,如下圖所示;
色調:用角度度量,取值範圍為0°~360°,從紅色開始按逆時針方向計算,紅色為0°,綠色為120°,藍色為240°。它們的補色是:黃色為60°,青色為180°,品紅為300°;
飽和度:取值範圍為0.0~1.0,值越大,顏色越飽和;
亮度:取值範圍為0(黑色)~255(白色);
現在向大家介紹一種使顏色模式轉化的函式,cv2.cvtcolor(input_image,flag)其中第乙個引數是目標,第二個引數是轉化型別,如cv2.color_bgr2gray、cv2.color_bgr2hsv.下面這段**是將乙個名為"1,jpg"的改為hsv模式.
# -*- coding: utf-8 -*-
import cv2
import numpy as np
a=cv2.imread('1.jpg')#讀取一張
b=cv2.cvtcolor(a,cv2.color_bgr2hsv)#轉化為hsv
三、物體跟蹤
在我們將一幅圖從bgr模式改為hsv後,我們就可以利用這一點來提取帶有特定顏色的物體,這是因為在hsv顏色空間中要比在bgr空間中更容易表示乙個特定顏色。
# -*- coding: utf-8 -*-
import cv2
import numpy as np
a=cv2.imread('2.jpg')#讀取一張
b=cv2.cvtcolor(a,cv2.color_bgr2hsv)#轉化為hsv
lower_blue=np.array([110,50,50])
upper_blue=np.array([130,255,255])#設定藍色的閾值
mask=cv2.inrange(b,lower_blue,upper_blue)#根據閾值構建掩摸
res=cv2.bitwise_and(b,b,mask=mask)# 對原影象和掩模進行位運算
《OpenCV》 顏色空間
opencv中匯集了150多種顏色顏色空間的轉變方法,接下來只看最常用的兩種,即bgr gray 和 bgr hsv import cv2 color space轉變函式 cv2.cvtcolor input image,flag 檢視顏色空間flag flags i for i in dir cv...
OpenCV 顏色空間轉換(Python實現)
轉換顏色空間 最常用的兩種顏色空間方法 bgr gray和bgr hsv。cv2.cvtcolor input image,flag input image 轉換的影象 flag 轉換型別 對於 bgr gray 的轉換,我們要使用的 flag 就是cv2.color bgr2gray。對於 bgr...
opencv顏色空間轉換
使用工具python3.5 使用包cv2,numpy 涉及函式cv2.cvtcolor cv2.inrange 在 opencv 中有 超過150 種進行顏色空間轉換的方法。但是你以後就會發現我們經常用到的也就兩種 bgr gray 和 bgr hsv。我們用到的函式是cv2.cvtcolor in...