OpenCV入門基本操作
阿新 • • 發佈:2021-02-13
- 讀取視訊
cap = cv2.VideoCapture( "Resources/test_video.mp4" )#視訊路徑
while True:
success,img = cap.read()
cv2.imshow("Video",img)
if cv2.waitKey(1) & 0xFF ==ord('q'): #表示按下'q'時才停止
break
- 讀取圖片
import cv2 img = cv2. imread( "Resources/lena.png" ) cv2.imshow("output".img) cv2.waitKey(0) #表示停滯毫秒,0表示一直顯示
- 呼叫攝像頭
import cv2
cap = cv2.VideoCapture(0)
cap.set(3,640) #定義寬度
cap.set(4.480) #定義高度
cap.set(10,100) #定義亮度
while True:
success,img = cap.read()
cv2.imshow( "Video", img )
if cv2.waitKey(1) & 0xFF ==ord('q'):
break
- 圖片轉換為灰度影象
import cv2 img = cv2.imread( "Resources/wsj.png”) imgGray = cv2.cvtColor( img,cv2.COLOR_BGR2GRAY ) cv2.imshow("Gray Image ",imgGray) cv2.waitKey(0)
- 模糊處理
import cv2
img = cv2.imread( "Resources/wsj.png”)
imgBlur = cv2.GaussianBlur(imgGray,(7,7),0)
cv2.imshow("Blur Image",imgBlur)
cv2.waitKey(0)
- 邊緣厚度處理
需要package:numpy
import cv2 import numpy as np img = cv2.imread("car.jpg") kernel = np.ones((5,5)np.uint8) #定義核心,ones表示讓所有值為1 #unit8表示物件的型別 imgGray = cv2.cvtCoLor(img,cv2.COLOR_BGR2GRAY) #灰度處理 imgBlur = cv2.GaussianBLur(imgGray,(7,7),0) #模糊處理 imgCanny = cv2.Canny(img,150,80) imgDialation = cv2.dilate (imgCanny,kernel,iterations=1) #dilate(物件,核心,迭代器) #kernel:核心 cv2.imshow("DiaLation Image",imgDialation) cv2.waitKey(0)
unit8表示物件的型別,它是8位無符號整數,表示值範圍可以從0到255
- 侵蝕影象
import cv2
import numpy as np
img = cv2.imread("car.jpg")
kernel = np.ones((5,5)np.uint8) #定義核心,ones表示讓所有值為1
#unit8表示物件的型別
imgGray = cv2.cvtCoLor(img,cv2.COLOR_BGR2GRAY) #灰度處理
imgBlur = cv2.GaussianBLur(imgGray,(7,7),0) #模糊處理
imgCanny = cv2.Canny(img,150,80)
imgDialation = cv2.dilate(imgCanny,kernel,iterations=1)
imgEroded = cv2.erode(imgDialation,kernel,iterations=1)
cv2.imshow("Eroded Image",imgEroded)
cv2.waitKey(0)
- 調整圖片大小
import cv2
import numpy as np
img = cv2.imread("wsj.jpg")
print(img.shape) #shape(2392,2392,3)高度、寬度、模式
#調整圖片大小
imgResize = cv2.resize(img,(480,480))
cv2.imshow("Image Resize",imgResize)
cv2.imwrite("little wsj.jpg",imgResize,None) #儲存到其他地方
cv2.waitKey(0)
- 裁剪圖片大小(矩形)
import cv2
import numpy as np
img = cv2.imread("car.jpg")
print(img.shape)
#調整圖片大小
imgResize = cv2.resize(img,(700,500)) #(寬,高)
#使用矩陣功能,定義寬度的起點終點和高度的起點終點
imgCropped = img[200:500,200:500]#[高,寬]
cv2.imshow("Image Cropped",imgCropped)
cv2.waitKey(0)
- 構建圖形
線段
img = np.zeros((512,512,3),np.uint8) #建立視窗
cv2.line(img,(0,0), (img.shape[1],img.shape[0]), (0,255,0), 3)
# 起點 終點 顏色 粗細
矩形
cv2.rectangle(img,(0,0),(250,350),(0,0,255),2)
# 起點 終點 顏色 粗細
cv2.rectangle(img,(0,0),(250,350),(0,0,255),cv2.FILLED)
# 起點 終點 顏色 填充