OpenCV是一個電腦視覺模組,可應用於臉部手勢辨識或圖像分割等影像辨識相關的領域。
!pip install opencv-python
導入
import cv2
img = cv2.imread("dog.jpg") # 讀取圖片
cv2.imshow("img",img) # 開啟圖片的視窗名稱
cv2.waitKey(0) # 設定時間讓視窗關閉(0表示無限久,直到自己主動關閉)
img = cv2.resize(img, (250, 250))
cv2.imshow("img",img) # 開啟圖片的視窗名稱
cv2.waitKey(0) # 設定時間讓視窗關閉(0表示無限久,直到自己主動關閉)
img = cv2.resize(img, (0, 0), fx=0.3, fy=0.5)
cv2.imshow("img",img) # 開啟圖片的視窗名稱
cv2.waitKey(0) # 設定時間讓視窗關閉(0表示無限久,直到自己主動關閉)
video = cv2.VideoCapture("video.mp4")
while True: #使用迴圈重複擷取frame,等於播放一個影片
bool, frame = video.read() #bool是一個布林值,如果True就會擷取一個frame
if bool:
cv2.imshow("video", frame)
else:
break
cv2.waitKey(1) 每一幀會等1ms
video = cv2.VideoCapture("video.mp4")
while True:
bool, frame = video.read()
if bool:
cv2.imshow("video", frame)
else:
break
if cv2.waitKey(1) == ord("q"): #點選鍵盤上的q就會停止
break
vvideo = cv2.VideoCapture(0) #會開啟視訊畫面
while True:
bool, frame = video.read()
if bool:
cv2.imshow("video", frame)
else:
break
if cv2.waitKey(1) == ord("q"):
break
import cv2
img = cv2.imread("dog.jpg")
print(type(img))
#輸出:<class 'numpy.ndarray'>
ndarray是一種多維的陣列型態,屬於numpy模組下的一種型態。
import cv2
img = cv2.imread("dog.jpg")
print(img.shape)
#輸出:(854, 1280, 3)
代表以下模式的陣列
[[[B, G, R],[],[]...1280],
[],
[],...
854
]
import numpy as np
img = np.empty((300, 300, 3), np.uint8) #創建多維陣列
for row in range(300):
for col in range(300):
img[row][col] = [0, 255, 0]
cv2.imshow("img", img)
cv2.waitKey(0)
import cv2
img = cv2.imread("dog.jpg")
newimg = img[200:400, 400:800]
cv2.imshow("img", img)
cv2.imshow("newimg", newimg)
cv2.waitKey(0)