1. 程式人生 > >Python + OpenCV 學習筆記(一)>>> 影象的載入與儲存

Python + OpenCV 學習筆記(一)>>> 影象的載入與儲存

影象屬性

  • 通道數目
  • 高與寬
  • 畫素資料
  • 影象型別

顯示一張圖片:

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
(const String& filename,int flags)
讀取圖片引數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()

在這裡插入圖片描述