OpenCV 基本的圖片讀取與編輯
1、基本的圖片儲存格式
在計算機中圖片是以矩陣的形式儲存在儲存介質中的。
import numpy as np
import cv2
img=np.mat(np.zeros((300,300)),dtype=np.uint8)
img=cv2.cvtColor(img,cv2.COLOR_GRAY2BGR)
print(img)
cv2.imshow("test",img)
cv2.waitKey(0)
2、影象的讀取與儲存
imread和imwrite方法分別是OpenCV的讀方法和寫方法
(1)影象的讀取:
import numpy as np
import cv2
image=cv2.imread("C:/Users/Mr.Ma/Desktop/1.jpg",cv2.IMREAD_GRAYSCALE)
cv2.imshow("test",image)
cv2.waitKey(0)
print(image)
(2)影象的寫入
cv2.imwrite("writeimg.jpg",image)
將所讀取的圖片儲存在當前目錄下,這裡傳遞了兩個引數,第一個表示為圖片的儲存名稱,並在儲存的時候,圖片的型別發生改變,由jpg格式改變為png型別儲存,而第二個引數為記憶體中所要儲存的目標
注意:在讀取的同時,圖片被自動讀取為灰度圖
3、影象的轉換
在計算機中儲存的時候,任何一個圖片的儲存都佔有一定的空間,而為了減少圖片的儲存便於在有限的記憶體中更進一步地轉換,對於每一個圖片來說,可以通過Python自帶地方法,將其轉化為標準地一維 Python bytearray 格式。
使用方法:
imageByteArray=bytearray(image)
同樣,bytearray 可以通過矩陣重構的方法還原為原本的圖片矩陣,
imageBGR=np.array(imageByteArray).reshape(640,480)
4、使用Numpy模組對影象進行編輯
(1)通過對陣列的操作修改圖片的顏色
import numpy as np
import cv2
img=np.zeros((300,300))
img[200,150]=255
cv2.imshow("test",img)
cv2.waitKey(0)
(2)對生成的圖片進行操作,畫出橫豎兩條白線
import numpy as np
import cv2
img=np.zeros((300,300))
img[:,10]=255
img[10,:]=255
cv2.imshow("test",img)
cv2.waitKey(0)