Python opencv包各種圖畫功能

說明

opencv 提供很多套件很好用,opencv 在pycharm import 的時候是 import cv2,然後使用 Project Interpreter 下載安裝套件的時候要選擇opencv-python,有些功能會因為版本不同增加跟修改,在使用時要去確認版本,接下來的內容很多時候都會使用的到,我也參考了我最常查詢的網站,分享的方法實作一次,喜歡的人可以直接點下面連結去看原作者的說明。

操作流程

Code

import numpy as np
import cv2

# 建立一張 512x512 的 RGB 圖片(黑色)
img = np.zeros((256, 256, 3), np.uint8)

# 將圖片用淺灰色 (200, 200, 200) 填滿
img.fill(200)

# 在圖片上畫一條紅色的對角線,寬度為 5 px
cv2.line(img, (0, 0), (255, 255), (0, 0, 255), 5)

# 在圖片上畫一個綠色方框,線條寬度為 2 px
cv2.rectangle(img, (20, 60), (120, 160), (0, 255, 0), 2)

# 綠色實心方框
cv2.rectangle(img, (40, 80), (100, 140), (0, 255, 0), -1)

# 黃色圓圈,線條寬度為 3 px
cv2.circle(img,(90, 210), 30, (0, 255, 255), 3)

# 藍色實心圓圈
cv2.circle(img,(140, 170), 15, (255, 0, 0), -1)

# 傾斜 45 度的紫色橢圓形
cv2.ellipse(img, (180, 200), (25, 55), 45, 0, 360, (205, 0, 255), 2)

# 傾斜 45 度的半個實心橢圓
cv2.ellipse(img, (180, 200), (20, 50), 45, 0, 180, (255, 0, 255), -1)

# 設定多邊形頂點座標
pts = np.array([[170, 55], [165, 75], [220, 80], [200, 60]], np.int32)

# 將座標轉為 (頂點數量, 1, 2) 的陣列
pts = pts.reshape((-1, 1, 2))

# 繪製多邊形
cv2.polylines(img, [pts], True, (255, 255, 0), 4)

# 顯示圖片
cv2.imshow('My Image', img)

# 按下任意鍵則關閉所有視窗
cv2.waitKey(0)
cv2.destroyAllWindows()

DEMO

還有一個經常使用的方法,是顯示的時候可以更改顯示的視窗大小,下方實作就依照原本的內容修改後半部

Code

# 顯示圖片

cv2.namedWindow('result', cv2.WINDOW_NORMAL)
cv2.resizeWindow("result", 640, 480)
cv2.imshow("result", img)

# 按下任意鍵則關閉所有視窗

cv2.waitKey(0)
cv2.destroyAllWindows()

DEMO

留言