Opencv圖像讀取與顯示

一.讀取並顯示圖片

1. cv2.imread(filename,flag)讀入圖像

flag:讀入圖片的標誌

  • cv2.IMREAD_COLOR:默認參數1,讀入一副彩色圖片,忽略alpha通道
  • cv2.IMREAD_GRAYSCALE:讀入灰度圖片,0
  • cv2.IMREAD_UNCHANGED:讀入完整圖片,包括alpha通道,-1

2. cv2.imshow(wname,img)顯示圖片

wname:窗口名

img:顯示的圖片

import cv2
image = cv2.imread("D:/1.jpg") #讀入圖片
cv2.namedWindow("img",cv2.WINDOW_NORMAL); #命名窗口,並且大小可調節
cv2.resizeWindow("img", 400, 480);  #設置窗口大小
cv2.imshow("img",image)
cv2.waitKey(0)  #該函數等待任何鍵盤事件指定的毫秒。如果您在這段時間內按下任何鍵,程序將繼續運行。如果0被傳遞,它將無限期地等待一次敲擊鍵。
cv.destroyAllWindows()

用法:cv2.namedWindow(‘窗口標題’,默認參數)

默認參數:cv2.WINDOW_AUTOSIZE+cv2.WINDOW_KEEPRATIO+cv2.WINDOW_GUI_EXPANDED)

參數:

  • cv2.WINDOW_NORMAL 窗口大小可改變
  • cv2.WINDOW_AUTOSIZE 窗口大小不可改變
  • cv2.WINDOW_FREERATIO 自適應比例
  • cv2.WINDOW_KEEPRATIO 保持比例
  • cv2.WINDOW_GUI_NORMAL
  • cv2.WINDOW_GUI_EXPANDED

3. cv.imwrite() 寫入圖像

第一個參數是文件名,第二個參數是要保存的圖像。


實例:

import cv2 as cv
import numpy as np
img=cv.imread("D:/1.jpg",0)
cv.namedWindow("1.jpg",0)
cv.resizeWindow("1.jpg",400,400)
cv.imshow("1.jpg",img)
k=cv.waitKey(0)
if k == ord('k'):
   cv.imwrite("D:/2.png",img)
   cv.destroyAllWindows()

特別注意: OpenCV加載的彩色圖像處於BGR模式。但是Matplotlib以RGB模式顯示。因此,如果使用OpenCV讀取彩色圖像,則Matplotlib中將無法正確顯示彩色圖像。
解決辦法爲:在顯示圖片之前加上一下語句:

#img是opencv加載的原始圖,img2爲用於matpltlib顯示的圖
img2 = img[..., ::-1]
#或者
img2 = cv.cvtColor(img, cv.COLOR_BGR2RGB)

引用:http://woshicver.com

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章