Opencv-Python:圖像尺寸、圖像的讀取、顯示、保存與復制


Opencv-Python:圖像尺寸、圖像的讀取、顯示、保存與復制

原創 2017年11月23日 21:30:49

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

 

[python]  view plain  copy
 
  1. import cv2  

 

一、圖像尺寸

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

示例:

 

[python]  view plain  copy
 
  1. if __name__ == '__main__':  
  2.     dirfile = 'dataset/data/TrainData/001.bmp'  
  3.     img = cv2.imread(dirfile)  
  4.     size = img.shape  
  5.     print size  
運行結果:(800,645,3)

 

在cv中,是通過size = cv2.GetSize(i)的GetSize()函數來獲取的

 

二、讀取圖像

在python中不需要聲明變量,知道圖像的具體位置就可以通過imread()直接讀取;目前opencv支持讀取bmp、jpg、png等常用的一些格式,更詳細的內容請參考opencv的參考文檔。讀取:

 

[python]  view plain  copy
 
  1. image = cv2.imread('F:/001.nmp')  

 

cv對應的方法是grey_image = cv2.CreateImage(size, 8, 1)

 

三、顯示圖像

首先創建一個新的窗口用於顯示圖像:

[python]  view plain  copy
 
  1. cv2.namedWindow('showimage')  
cv對應的方法是cv.NamedWindow("Shape Model", cv.CV_WINDOW_AUTOSIZE)

 

然后在窗口中顯示圖像:

 

[python]  view plain  copy
 
  1. cv2.imshow("Image",i)  
  2. cv2.waitKey(0)  
如果不加cv2.waitKey(0),你們在IDLE中的執行窗口直接無響應,在命令行中執行的時候就會一閃而過。最后一句加上cv2.destroyALLWindows()的話,就能釋放窗口了。

 

cv中cv.ShowImage("Image",i)顯示圖像,cv.WaitKey()

 

四、保存圖像

 

[python]  view plain  copy
 
  1. cv2.imwrite(F:/images',image,[int(cv2.IMWRITE_JPEG_QUALITY),5])三個參數分別對應保存的路徑及文件名、圖像矩陣、指定格式(對於JPEG,其表示的是圖像的質量,  
[python]  view plain  copy
 
  1. 0-100的整數表示,默認為95。 注意,cv2.IMWRITE_JPEG_QUALITY類型為Long,必須轉換成int;對於PNG,第三個參數表示的是壓縮級別。cv2.IMWRITE_PNG_COMPRESSION,  
[python]  view plain  copy
 
  1. 0到9,壓縮級別越高,圖像尺寸越小。這個是可選參數)  

五、復制圖像

在原來的opencv中可以直接使用cv.CreateImage()創建圖像,但cv2就需要使用numpy的函數了

 

[python]  view plain  copy
 
  1. import numpy as np  
[python]  view plain  copy
 
  1. image = np.zeros(img.shape, np.uint8)  
圖像使用numpy數組的屬性來表示圖像的尺寸和提通道信息。

 

當然也可以直接復制原來的圖像到一張新的圖像上:

 

[python]  view plain  copy
 
  1. image = img.copy()  
也可以用cvtColor獲取原圖像的副本:

 

 

[python]  view plain  copy
 
  1. image = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM