縮放和裁剪圖像
縮放是一個(gè)改變圖像形狀的過程。在 Opencv,我們可以使用 resize 函數(shù)來調(diào)整圖像的形狀。
語法
cv2.resize(IMG,(WIDTH,HEIGHT))
IMG: image which we want to resize
WIDTH: new width of the resize image
HEIGHT: new height of the resize image
Example
cv2.resize(img,(224,224))
要調(diào)整圖像的大小,我們首先需要知道圖像的形狀。我們可以利用 shape 找到圖像的形狀,然后根據(jù)當(dāng)前圖像的形狀,我們可以增大或減小圖像的大小。讓我們舉個(gè)例子來看看。
import cv2
img = cv2.imread("images/img0.jpg") ##Choose any image
print(img.shape)
imgResize = cv2.resize(img,(224,224)) ##Decrease size
imgResize2 = cv2.resize(img,(1024,1024)) ##Increase size
cv2.imshow("Image",img)
cv2.imshow("Image Resize",imgResize)
cv2.imshow("Image Increase size",imgResize2)
print(imgResize.shape)
cv2.waitKey(0)
如果您不想把圖像寬度和高度寫死,您也可以根據(jù)現(xiàn)有的形狀,然后根據(jù)比例改變圖像的寬度和高度。
import cv2
img = cv2.imread("images/img0.jpg") ##Choose any image
print(img.shape)
shape = img.shape
imgResize = cv2.resize(img,(shape[0]//2,shape[1]//2))##Decrease size
imgResize2 = cv2.resize(img,(shape[0]*2,shape[1]*2)) ##Increase size
cv2.imshow("Image",img)
cv2.imshow("Image Resize",imgResize)
cv2.imshow("Image Increase size",imgResize2)
print(imgResize.shape)
cv2.waitKey(0)
裁剪圖像
裁剪是獲取部分圖像的過程。在 OpenCV 中,我們可以通過定義裁剪后的矩形坐標(biāo)來執(zhí)行裁剪。
語法
imgCropped = img[y1:y2, x1:x2](x1,y1): top-left vertex
(x2,y2): bottom-right vertex
Example
imgCropped = img[0:100,200:200]
使用裁剪方法,讓我們嘗試從圖像中提取 Monalisa 的臉。
import cv2
img = cv2.imread("images/img0.jpg")
imgCropped = img[50:250,120:330]
cv2.imshow("Image cropped",imgCropped)
cv2.imshow("Image",img)
cv2.waitKey(0)
您還可以使用繪畫模式來查找(x1,y1)、(x2,y2)的正確坐標(biāo)。
這里有個(gè)小任務(wù):
任務(wù) :右鍵單擊圖像并保存它; 嘗試從圖像中獲取國王卡。
提示 :使用繪畫模式找到正確的坐標(biāo),最后,使用調(diào)整大小,以增加裁剪圖像的大小。
使用函數(shù)的基本圖像濾波器
我們可以在圖像上使用許多基本的濾波器,比如將圖片轉(zhuǎn)換成灰度、模糊等等。
從 Img 到 gray
為了將圖像從彩色圖像轉(zhuǎn)換為灰度圖像,我們可以使用函數(shù) cv2.cvtColor,在這里我們傳遞 cv2.COLOR_BGR2GRAY 作為參數(shù)。
語法
imgGray = cv2.cvtColor(IMG,cv2.CODE)
IMG: Original image
CODE: Conversion code for Gray(COLOR_BGR2GRAY)
Example
imgGray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
從 Img 到 HSV
為了將圖像轉(zhuǎn)換為 HSV 顏色空間,我們可以使用函數(shù) cv2.cvtColor,這里我們傳遞 cv2.COLOR_BGR2HSV 作為參數(shù)。它主要用于目標(biāo)跟蹤。
語法
imgGray = cv2.cvtColor(IMG,cv2.CODE)
IMG: Original image
CODE: Conversion code for Gray(COLOR_BGR2HSV)
Example
imgHsv = cv2.cvtColor(img,cv2.COLOR_BGR2HSV)
模糊圖像
模糊用于去除圖像中的噪聲,也稱為平滑。它是對(duì)圖像應(yīng)用低通濾波器的過程。在 OpenCV 中對(duì)圖像進(jìn)行模糊,我們常用 GaussianBlur。
語法
imgBlur = cv2.GaussianBlur(img,(sigmaX,sigmaY),kernalSize)
kernalsize ? A Size object representing the size of the kernel.
sigmaX ? A variable representing the Gaussian kernel standard deviation in X direction.
sigmaY - same as sigmaX
Exmaple
imgBlur = cv2.GaussianBlur(img,(3,3),0)
邊緣檢測(cè)
在 OpenCV 中,我們使用 Canny算子來檢測(cè)圖像中的邊緣。也有不同的邊緣檢測(cè)器,但最著名的是 Canny算子。Canny算子邊緣檢測(cè)是一種邊緣檢測(cè)算子,它使用多級(jí)算法來檢測(cè)圖像中的大范圍邊緣,是由 John F. Canny 在1986年提出的。
語法
imgCanny = cv2.Canny(img,threshold1,threshold2)
threshold1,threshold2:Different values of threshold different for every images
Example
imgCanny = cv2.Canny(img,100,150)
-
C++
+關(guān)注
關(guān)注
22文章
2114瀏覽量
73859 -
計(jì)算機(jī)視覺
+關(guān)注
關(guān)注
8文章
1700瀏覽量
46131 -
OpenCV
+關(guān)注
關(guān)注
31文章
635瀏覽量
41559
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論