1. 程式人生 > 其它 >OpenCV入門基本操作

OpenCV入門基本操作

  • 讀取視訊
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)
#                  起點     終點       顏色     填充