一、cv2.inrange函數
cv2.inrange函數可以幫助我們選取出在指定範圍內的像素,常常用於圖像分割中的顏色提取。
1、函數格式
cv2.inrange(src, lowerb, upperb[, dst]) → dst
其中,src是輸入的需要進行顏色提取的圖像;lowerb是顏色下限,必須為列表或元組形式;upperb是顏色上限,同樣必須為列表或元組形式;dst是輸出的圖像。
2、函數使用
例如,我們需要提取藍色的圖像:
import cv2 import numpy as np img = cv2.imread('blue.jpg') hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV) lower_blue = np.array([100, 50, 50]) upper_blue = np.array([130, 255, 255]) mask = cv2.inRange(hsv, lower_blue, upper_blue) res = cv2.bitwise_and(img, img, mask=mask) cv2.imshow('original', img) cv2.imshow('mask', mask) cv2.imshow('res', res) cv2.waitKey(0) cv2.destroyAllWindows()
在代碼中,我們首先讀取了一個名為blue.jpg的藍色圖像,並將其轉換為HSV顏色空間。接着,我們指定了藍色的顏色下限和上限值。最後,我們使用cv2.inRange函數將顏色提取出來,並使用cv2.bitwise_and函數將原圖像和顏色提取結果進行按位與操作,得出提取後的結果。
二、cv2.rectangle函數
cv2.rectangle函數可以在給定的圖像上繪製矩形框。
1、函數格式
cv2.rectangle(img, pt1, pt2, color[, thickness[, lineType[, shift]]]) → img
其中,img是需要繪製矩形框的圖像;pt1是矩形框的左上角坐標,必須為元組形式;pt2是矩形框的右下角坐標,同樣必須為元組形式;color是矩形框的顏色,必須為元組或列表形式;thickness是矩形框邊框的粗細程度,默認值為1;lineType是線條的類型,默認值為cv2.LINE_8;shift是每個坐標值中的小數點位數,默認值為0。
2、函數使用
例如,我們需要在一張圖像上繪製矩形框:
import cv2 img = cv2.imread('rectangle.jpg') cv2.rectangle(img, (47, 81), (214, 226), (0, 255, 0), 2) cv2.imshow('original', img) cv2.waitKey(0) cv2.destroyAllWindows()
在代碼中,我們首先讀取了一張名為rectangle.jpg的圖像,並在圖像上以左上角坐標為(47, 81),右下角坐標為(214, 226)的位置繪製了一個綠色粗邊框的矩形框。
三、cv2.cvtColor函數
cv2.cvtColor函數可以將指定圖像從一種顏色空間轉換為另一種顏色空間。
1、函數格式
cv2.cvtColor(src, code[, dst[, dstCn]]) → dst
其中,src是需要轉換顏色空間的輸入圖像;code是指定轉換方式的flag參數,必須為cv2.COLOR_*類型;dst是可選的輸出圖像;dstCn是輸出圖像的channel個數。
2、函數使用
例如,我們需要將BGR顏色空間的圖像轉換為GRAY顏色空間的圖像:
import cv2 img = cv2.imread('lena.jpg') gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) cv2.imshow('original', img) cv2.imshow('gray', gray) cv2.waitKey(0) cv2.destroyAllWindows()
在代碼中,我們首先讀取了一個名為lena.jpg的圖像,並將其從BGR顏色空間轉換為GRAY顏色空間,結果顯示了原圖像和灰度圖像。
四、cv2.imread函數
cv2.imread函數可以讀取指定路徑下的圖像文件。
1、函數格式
cv2.imread(filename[, flags]) → retval
其中,filename是需要讀取的圖像文件路徑;flags是可選的讀取標誌,必須為cv2.IMREAD_*類型。
2、函數使用
例如,我們需要讀取一張圖像並顯示出來:
import cv2 img = cv2.imread('lena.jpg') cv2.imshow('original', img) cv2.waitKey(0) cv2.destroyAllWindows()
在代碼中,我們首先讀取了一個名為lena.jpg的圖像,並將其顯示在屏幕上。
五、cv2.flip函數
cv2.flip函數可以對圖像進行翻轉。
1、函數格式
cv2.flip(src, flipCode[, dst]) → dst
其中,src是需要進行翻轉的圖像;flipCode是指定翻轉方式的參數,可以是0、1或-1;dst是輸出的圖像。
2、函數使用
例如,我們需要將一張圖像水平翻轉:
import cv2 img = cv2.imread('lena.jpg') flip_img = cv2.flip(img, 1) cv2.imshow('original', img) cv2.imshow('flip', flip_img) cv2.waitKey(0) cv2.destroyAllWindows()
在代碼中,我們首先讀取了一張名為lena.jpg的圖像,並使用cv2.flip函數將其水平翻轉,然後將原圖像和翻轉後的圖像進行對比。
六、cv2.laplacian函數
cv2.laplacian函數可以對圖像進行拉普拉斯算子處理。
1、函數格式
cv2.laplacian(src, ddepth[, dst[, ksize[, scale[, delta[, borderType]]]]]) → dst
其中,src是需要進行處理的輸入圖像;ddepth是輸出圖像的深度;dst是可選的輸出圖像;ksize是算子核的大小;scale是放縮係數;delta是偏移量;borderType是邊緣處理方式。
2、函數使用
例如,我們需要對一張圖像進行拉普拉斯算子處理:
import cv2 import numpy as np img = cv2.imread('lena.jpg') laplacian = cv2.Laplacian(img, cv2.CV_64F) cv2.imshow('original', img) cv2.imshow('laplacian', laplacian) cv2.waitKey(0) cv2.destroyAllWindows()
在代碼中,我們首先讀取了一張名為lena.jpg的圖像,並使用cv2.Laplacian函數對其進行拉普拉斯算子處理。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/230767.html