OpenCV-python實現圖像加載、圖像保存、攝像頭調用

OpenCV-python實現圖像加載、圖像保存、攝像頭調用

說明:

1、涉及兩個模塊相關知識

1.1、通過調用cv2模塊中的函數實現圖像讀取,寫入,灰度處理
涉及命令:

相關命令 用到的功能
cv.imread 讀取圖像
cv.imshow 顯示圖像
cv.imwrite 圖像寫入
cv.cvtColor 圖像色彩處理
cv.COLOR_BGR2GRAY 灰度處理
cv.flip 攝像頭捕捉圖像的鏡像變換
cv.VideoCapture 視頻捕捉
cv.namedWindow 創建圖形窗口
cv.WINDOW_AUTOSIZE 窗口大小
cv.waitKey 等待鍵入,或者刷新

1.2、通過調用numpy中的函數將圖像矩陣裏的數據保存

pixel_data = np.array(image)
#使用numpy庫中的array函數來將image中所有數據存起來

2、定義兩個函數:

2.1、video_demo函數實現攝像頭捕捉圖像

def video_demo():#調用攝像頭
    capture = cv.VideoCapture(0)
    while(True):#表示一直讀取的意思
        ret, frame = capture.read()#將捕捉到的每一幀圖像存到frame中
        frame = cv.flip(frame, 1)#flip是鏡像變換,1和-1
        cv.imshow("video", frame)#讀取攝像頭的每一幀
        c = cv.waitKey(50)#每隔50ms刷新一次圖像
        if c == 27:#27是ASCII碼ESC十進制的表示,用來退出
            break

2.2、get_image_info函數實現圖像信息的獲取

def get_image_info(image):#用來得到圖片的具體信息
    print(type(image))#得到圖像的類型,<class 'numpy.ndarray'>,numpy包中N維的數組結構
    print(image.shape)#圖像寬高和通道數
    print(image.size)#圖像大小size=shape中寬高和通道數相乘
    print(image.dtype)#獲得圖像字節大小uint8表示無符號int8位數
    pixel_data = np.array(image)#使用numpy庫中的array函數來將image中所有數據存起來
    print(pixel_data)#打印圖像的數組數據

3、完整代碼

附:
需要在同一個目錄下放入圖片:1.jpg
可以更改輸出路徑與文件名

import cv2 as cv
import numpy as np


def video_demo():#調用攝像頭
    capture = cv.VideoCapture(0)
    while(True):#表示一直讀取的意思
        ret, frame = capture.read()#將捕捉到的每一幀圖像存到frame中
        frame = cv.flip(frame, 1)#flip是鏡像變換,1和-1
        cv.imshow("video", frame)#讀取攝像頭的每一幀
        c = cv.waitKey(50)#每隔50ms刷新一次圖像
        if c == 27:#27是ASCII碼ESC十進制的表示,用來退出
            break

def get_image_info(image):#用來得到圖片的具體信息
    print(type(image))#得到圖像的類型,<class 'numpy.ndarray'>,numpy包中N維的數組結構
    print(image.shape)#圖像寬高和通道數
    print(image.size)#圖像大小size=shape中寬高和通道數相乘
    print(image.dtype)#獲得圖像字節大小uint8表示無符號int8位數
    pixel_data = np.array(image)#使用numpy庫中的array函數來將image中所有數據存起來
    print(pixel_data)#打印圖像的數組數據


print("--------Hello python---------")
scr = cv.imread("1.jpg")#使用cv中的imread來讀取圖片並保存數據到scr中
cv.namedWindow("input image", cv.WINDOW_AUTOSIZE) #創建一個叫input image的GUI框架顯示圖像
cv.imshow("input image", scr)#使用cv中的imshow來顯示圖片,使創建的窗口與圖像相吻合

video_demo()#調用攝像頭

get_image_info(scr)#調用函數,將scr中的內容傳遞進去,獲得圖像信息

gray = cv.cvtColor(scr, cv.COLOR_BGR2GRAY)#將圖像進行灰度處理
cv.imwrite("E:\Python Environment\Pycharm_location_projects\Myprojects\gray-1.png", gray)#圖像輸出保存

cv.waitKey(0)#等待操作

cv.destroyAllWindows()  # 釋放所有窗口內存
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章