1. 程式人生 > >Opencv-Python:影象尺寸、影象的讀取、顯示、儲存與複製

Opencv-Python:影象尺寸、影象的讀取、顯示、儲存與複製

在使用opencv的方法時,首先必須匯入opencv包。新的opencv匯入cv2,這裡也和cv做了一個對比

import cv2

一、影象尺寸

影象的大小可以通過其shape屬性來獲取,shape返回的是一個tuple元組,第一個元素表示影象的高度,第二個表示影象的寬度,第三個表示畫素的通道數。

示例:


if __name__ == '__main__':
    dirfile = 'dataset/data/TrainData/001.bmp'
    img = cv2.imread(dirfile)
    size = img.shape
    print size

執行結果:(800,645,3)
在cv中,是通過size = cv2.GetSize(i)的GetSize()函式來獲取的

二、讀取影象

在python中不需要宣告變數,知道影象的具體位置就可以通過imread()直接讀取;目前opencv支援讀取bmp、jpg、png等常用的一些格式,更詳細的內容請參考opencv的參考文件。讀取:

image = cv2.imread('F:/001.nmp')
cv對應的方法是grey_image = cv2.CreateImage(size, 8, 1)

三、顯示影象
首先建立一個新的視窗用於顯示影象:

cv2.namedWindow('showimage')
cv對應的方法是cv.NamedWindow("Shape Model", cv.CV_WINDOW_AUTOSIZE)
然後在視窗中顯示影象:

cv2.imshow("Image",i)
cv2.waitKey(0)

如果不加cv2.waitKey(0),你們在IDLE中的執行視窗直接無響應,在命令列中執行的時候就會一閃而過。最後一句加上cv2.destroyALLWindows()的話,就能釋放視窗了。
cv中cv.ShowImage("Image",i)顯示影象,cv.WaitKey()

四、儲存影象

cv2.imwrite(F:/images',image,[int(cv2.IMWRITE_JPEG_QUALITY),5])三個引數分別對應儲存的路徑及檔名、影象矩陣、指定格式(對於JPEG,其表示的是影象的質量,
用0-100的整數表示,預設為95。 注意,cv2.IMWRITE_JPEG_QUALITY型別為Long,必須轉換成int;對於PNG,第三個引數表示的是壓縮級別。cv2.IMWRITE_PNG_COMPRESSION,
從0到9,壓縮級別越高,影象尺寸越小。這個是可選引數)

五、複製影象
在原來的opencv中可以直接使用cv.CreateImage()建立影象,但cv2就需要使用numpy的函數了

import numpy as np
image = np.zeros(img.shape, np.uint8)

影象使用numpy陣列的屬性來表示影象的尺寸和提通道資訊。
當然也可以直接複製原來的影象到一張新的影象上:

image = img.copy()
也可以用cvtColor獲取原影象的副本:
image = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

--------------------- 
作者:Daisy_HJL 
來源:CSDN 
原文:https://blog.csdn.net/qq_28618765/article/details/78618724 
版權宣告:本文為博主原創文章,轉載請附上博文連結!