1. 程式人生 > 程式設計 >Python+OpenCV影象處理——列印圖片屬性、設定儲存路徑、呼叫攝像頭

Python+OpenCV影象處理——列印圖片屬性、設定儲存路徑、呼叫攝像頭

一.列印圖片屬性、設定圖片儲存路徑

程式碼如下:

#列印圖片的屬性、儲存圖片位置
import cv2 as cv
import numpy as np   #numpy是一個開源的Python科學計算庫
def get_image_info(image):
  print(type(image))  #type() 函式如果只有第一個引數則返回物件的型別  在這裡函式顯示圖片型別為 numpy型別的陣列
  print(image.shape)
  #影象矩陣的shape屬性表示影象的大小,shape會返回tuple元組,
  # 第一個元素表示矩陣行數,第二個元組表示矩陣列數,第三個元素是3,表示畫素值由光的三原色組成
  print(image.size) #返回影象的大小,size的具體值為shape三個元素的乘積
  print(image.dtype) #陣列元素的型別通過dtype屬性獲得
  pixel_data=np.array(image)
  print(pixel_data) # 列印圖片矩陣   N維陣列物件即矩陣物件
src=cv.imread('E:\imageload\example.png')
cv.namedWindow('input_image',cv.WINDOW_AUTOSIZE)
cv.imshow('input_image',src)
get_image_info(src)
cv.imwrite("E:/example.png",src)    #圖片儲存路徑
# gray=cv.cvtColor(src,cv.COLOR_BGR2GRAY)  #使圖片顏色變為灰度
# cv.imwrite("E:/example.png",gray)
cv.waitKey(0)
cv.destroyAllWindows()

二.電腦攝像頭的調取和顯示

程式碼如下:

#電腦攝像頭的調取和顯示
import cv2 as cv
def video_demo():
  capture=cv.VideoCapture(0)
  #引數為視訊裝置的id ,如果只有一個攝像頭可以填0,表示開啟預設的攝像頭   這裡的引數也可以是視訊檔名路徑,只要把視訊檔案的具體路徑寫進去就好
  while True: #只要沒跳出迴圈,則會迴圈播放每一幀,waitKey(10)表示間隔10ms
    ret,frame = capture.read()
    #read函式讀取視訊(攝像頭)的某幀,它能返回兩個引數. 第一個引數是bool型的ret,其值為True或False,代表有沒有讀到圖片. 第二個引數是frame,是當前擷取一幀的圖片
    frame=cv.flip(frame,1)
    #翻轉 0:沿X軸翻轉(垂直翻轉)  大於0:沿Y軸翻轉(水平翻轉)  小於0:先沿X軸翻轉,再沿Y軸翻轉,等價於旋轉180°
    cv.imshow("video",frame)
    pc=cv.waitKey(10)  #超過10ms,waitKey函式會返回-1,如果10ms內在鍵盤按了某個按鍵,則 waitKey函式會返回對應按鍵的ASCII碼值,ASCII碼值一定大於0
    if pc>0:
      break
    # if cv.waitKey(10) == ord('z'): # 鍵盤輸入z退出視窗,不按z點選關閉會一直關不掉 也可以設定成其他鍵。 ord()函式返回對應字元的ASCII數值
    #   break
video_demo()
cv.destroyAllWindows()

以上就是Python+OpenCV影象處理——列印圖片屬性、設定儲存路徑、呼叫攝像頭的詳細內容,更多關於Python+OpenCV影象處理的資料請關注我們其它相關文章!