Python + OpenCV 學習筆記(一)>>> 影象的載入與儲存
阿新 • • 發佈:2018-11-25
影象屬性:
- 通道數目
- 高與寬
- 畫素資料
- 影象型別
顯示一張圖片:
import cv2 as cv
src = cv.imread("/home/pi/Desktop/apple.jpg")
cv.namedWindow("input image", cv.WINDOW_AUTOSIZE)
cv.imshow("input image", src)
cv.waitKey(0)
cv.destroyAllWindows()
函式說明:
函式 | 說明 |
---|---|
cv.imread |
讀取圖片。引數1:圖片地址;引數2(預設正常讀取):0 或2 為灰度圖,1 為原圖 |
cv.namedWindow( const char* name, int flags ) | 建立視窗,但不寫也能show。引數1:視窗名字;引數2:視窗顯示方式(為0 或cv.WINDOW_NORMAL,可以改變視窗大小;不寫或cv.WINDOW_AUTOSIZE則不可改變大小) |
cv.imshow(const string& winname, InputArray mat) | 顯示圖片視窗。引數1:視窗名稱(若上文有NamedWindow() 函式,這個名稱要與它一樣);引數2:要顯示的圖片(如果視窗是用CV_WINDOW_AUTOSIZE(預設值)標誌建立的,那麼顯示影象原始大小。否則,將影象進行縮放以適合視窗) |
waitKey(K) | 視窗顯示時間,單位:毫秒。K=0,一直顯示,直到按下數字鍵 |
destroyAllWindows() | 刪除建立的全部視窗,釋放資源 |
import cv2 as cv
def get_image_info(image):
print(type(image)) #列印影象型別
print(image.shape) #列印影象長寬和通道
print(image.size) #列印影象總畫素大小,其值等於影象 長×寬×通道數
print(image.dtype) #每個畫素點所擁有通道所佔的位數
src = cv.imread("/home/pi/Desktop/apple.jpg") #src 變為一個numpy 型別陣列
cv.namedWindow("input image", cv.WINDOW_AUTOSIZE)
cv.imshow("input image", src)
get_image_info(src)
cv.imwrite("/home/pi/Desktop/apple_2.jpg", src) #圖片另存為
cv.waitKey(0)
cv.destroyAllWindows()
除了輸出圖片外,還輸出瞭如下資訊:
輸出影象矩陣圖
import cv2 as cv
import numpy as np
def get_image_info(image):
print(type(image))
print(image.shape)
print(image.size)
print(image.dtype)
pixel_data = np.array(image) #通過np 獲取影象畫素矩陣
print(pixel_data)
src = cv.imread("/home/pi/Desktop/apple.jpg", 1)
cv.namedWindow("input image", 0)
cv.imshow("input image", src)
get_image_info(src)
cv.waitKey(0)
cv.destroyAllWindows()