一、安裝Anaconda OpenCV
首先請到Anaconda官網https://www.anaconda.com/products/individual 下載適合本機的Anaconda。
在Anaconda Prompt中輸入以下命令安裝:
conda create -n opencv python=3.7
conda activate opencv
conda install -c conda-forge opencv
驗證OpenCV安裝是否完整可用的代碼如下:
import cv2
import numpy as np
img = cv2.imread('test.jpg', 0)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
二、打開圖像文件
可以通過以下代碼打開圖片文件:
import cv2
img = cv2.imread('test.jpg')
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
其中,「test.jpg」 為圖片文件名稱
三、在圖像中繪製形狀
可以通過以下代碼繪製矩形、圓形等圖形:
import numpy as np
import cv2
img = cv2.imread("test.jpg")
cv2.rectangle(img, (384, 0), (510, 128), (0, 0, 255))
cv2.circle(img, (447, 63), 63, (0, 255, 0))
cv2.imshow("image", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
此代碼將在圖像中添加紅色矩形和綠色圓圈
四、調整圖像大小與縮放
可以使用以下代碼進行圖像大小和縮放的調整:
import cv2
img = cv2.imread('test.jpg')
res = cv2.resize(img, None, fx=2, fy=2, interpolation=cv2.INTER_CUBIC)
cv2.imshow('image', img)
cv2.imshow('res', res)
cv2.waitKey(0)
cv2.destroyAllWindows()
在此代碼中,我們將原始圖像按照2倍大小進行放大,並通過cv2.imshow()函數展示。
五、旋轉圖像
可以通過以下代碼旋轉圖像:
import cv2
import numpy as np
img = cv2.imread('test.jpg', 0)
rows, cols = img.shape
M = cv2.getRotationMatrix2D((cols/2,rows/2),45,1)
dst = cv2.warpAffine(img,M,(cols,rows))
cv2.imshow('img',dst)
cv2.waitKey(0)
cv2.destroyAllWindows()
此代碼將原始圖像順時針旋轉45度。
六、濾波和閾值處理
可以使用以下代碼對圖像進行濾波和二值化:
import cv2
import numpy as np
img = cv2.imread('test.jpg',0)
# 濾波處理
img = cv2.medianBlur(img,5)
# 二值化處理
ret,th1 = cv2.threshold(img,127,255,cv2.THRESH_BINARY)
th2 = cv2.adaptiveThreshold(img,255,cv2.ADAPTIVE_THRESH_MEAN_C,\
cv2.THRESH_BINARY,11,2)
th3 = cv2.adaptiveThreshold(img,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C,\
cv2.THRESH_BINARY,11,2)
# 展示效果
cv2.imshow('image',img)
cv2.imshow('th1',th1)
cv2.imshow('th2',th2)
cv2.imshow('th3',th3)
cv2.waitKey(0)
cv2.destroyAllWindows()
此代碼將原始圖像進行非線性濾波,並將其轉換為3種不同的閾值處理。
七、形態學轉換
可以使用以下代碼對圖像進行形態學轉換:
import cv2
import numpy as np
img = cv2.imread('j.png',0)
kernel = np.ones((5,5),np.uint8)
dilation = cv2.dilate(img,kernel,iterations = 1)
erosion = cv2.erode(img,kernel,iterations = 2)
opening = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)
closing = cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel)
cv2.imshow('img',img)
cv2.imshow('dilation',dilation)
cv2.imshow('erosion',erosion)
cv2.imshow('opening', opening)
cv2.imshow('closing', closing)
cv2.waitKey(0)
cv2.destroyAllWindows()
此代碼將原始圖像進行膨脹、腐蝕、開運算和閉運算等形態學操作。
原創文章,作者:XNXAE,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/331763.html