Python-OpenCV 影象基本操作
阿新 • • 發佈:2018-12-10
一、圖片 讀、寫、顯示、屬性檢視
import numpy as np
import cv2
-----------------------------直接讀取--------------------------------
img = cv2.imread('001.jpg',0) #讀取影象(直接讀取)
cv2.imshow('image',img) #顯示影象
k = cv2.waitKey(0)
if k == 27: # 按 Esc 退出(關閉顯示視窗)
cv2.destroyAllWindows()
elif k == ord ('s'): # 按 's' 儲存並退出 (關閉顯示視窗)
cv2.imwrite('002.png',img)
cv2.destroyAllWindows()
-----------------------------以灰度圖的形式讀取--------------------------------
grayImage = cv2.imread('003.png', cv2.CV_LOAD_IMAGE_GRAYSCALE)
"""
也可選引數:
CV_LOAD_IMAGE_COLOR (BGR),
CV_LOAD_IMAGE_GRAYSCALE (grayscale),
CV_LOAD_IMAGE_UNCHANGED(neither)
"""
cv2.imwrite('004.png', grayImage)
-----------------------------圖片的屬性--------------------------------
print ("圖片形狀:",img.shape)(長、寬、通道數)
print ("圖片大小:",img.size)
print ("圖片型別:",img.dtype)
"""
輸出:
圖片形狀: (640, 640, 3)
圖片大小: 1228800
圖片型別: uint8
"""
二、影象增強(縮放、平移、旋轉)
import cv2
import numpy as np
img = cv2. imread('messi5.jpg')
res = cv2.resize(img,None,fx=2, fy=2, interpolation = cv2.INTER_CUBIC)
#OR
height, width = img.shape[:2]
res = cv2.resize(img,(2*width, 2*height), interpolation = cv2.INTER_CUBIC)
-----------------------------影象平移--------------------------------
img = cv2.imread('messi5.jpg',0)
rows,cols = img.shape
M = np.float32([[1,0,100],[0,1,50]])
dst = cv2.warpAffine(img,M,(cols,rows))
cv2.imshow('img',dst) #展示圖片並退出
cv2.waitKey(0)
cv2.destroyAllWindows()
-----------------------------影象旋轉--------------------------------
img = cv2.imread('messi5.jpg',0)
rows,cols = img.shape
M = cv2.getRotationMatrix2D((cols/2,rows/2),90,1)
dst = cv2.warpAffine(img,M,(cols,rows))