Opencv怎么讀入,顯示,保存圖像-OpenCV步步精深


怎么讀入圖像呢?

我們用

  1. img = cv2.imread('圖像路徑\原圖像名稱',0)

原圖像名稱要有后綴 .png , .jpg等等原圖像帶有的后綴。

這里我們着重說明一下圖像路徑,這個路徑一定要是全英文,沒有數字,沒有中文,沒有各種符號,說的夠清楚吧,除了路徑分隔符\,其余的一切一切不是英文字母的都不能用,包括以后出現圖像路徑,都要謹記這一點。

相信有很多和我一樣的初學者面臨的第一個問題就是這個,我為此找了好多帖子,好多資料,但都沒有寫明這個問題,我希望這里給大家提個醒,會讓大家節省很多精力去干更多有意義的事。

另一個參數 0

這個參數是要告訴函數應該如何讀取這幅圖片,我們用0表示默認的原圖像,日后我們會用到更多的參數,這里簡單一提。

cv2.IMREAD_COLOR:讀入一副彩色圖片;

cv2.IMREAD_GRAYSCALE:以灰度模式讀入圖片;

cv2.IMREAD_UNCHANGED:讀入一幅圖片,並包括其alpha通道。

怎么顯示圖像呢?

  1. cv2.imshow('顯示圖像窗口的名稱', img)

怎么保存圖像呢?

  1. cv2.imwrite('圖像新名稱',img)

同圖像新名稱也要帶有后綴,這個圖像新名稱所帶有的后綴,可以不同於原圖像名稱的后綴,例如如果原圖像的后綴為.png,圖像新名稱可以為.png 也可以是.jpg。

整合這三個基本內容,我們就可以進行一個最基本的程序啦

  • 首先導入opencv的包
  1. import cv2
  • 還要導入numpy包
  1. import numpy as np
  • 開始讀入圖像吧,就拿我的檸檬來做例子吧
  1. img = cv2.imread('C:\Users\Administrator\Desktop\opencvimg\lemongrowup.png',0)
  • 然后我們可以顯示這個圖像咯
  1. cv2.imshow('image',img)
  • 顯示的圖像會出現一閃而過的情況,這是正常的,因為我們要設定一個函數來讓圖像一直顯示
  1. k = cv2.waitKey(0)&0xFF
  2. if k == 27:
  3.     cv2.destroyAllWindows()

cv2.waitKey(0)&0xFF這個函數就是64位下的讓窗口一直顯示的函數啦

27是ESC的ASCII碼,這句話就是說當按下ESC的時候,關閉圖像窗口,不按

我們用

cv2.destroyAllWindows() 刪除窗口,刪除指定窗口的話就要在()內加入窗口的名稱,這個我們以后會用到。不寫這句沒關系,不過你是關不掉打開的圖像窗口的,只能結束主程序才可以關閉圖像窗口。

  • 然后我們要保存圖像,

 

  1. elif k == ord('s'):
  2.     cv2.imwrite('lemongrowupgray.jpg',img)
  3.     cv2.destroyAllWindows()我們按下S的時候會保存

我們保存的圖像有人找不到啦,我悄悄告訴你們圖像就保存在你寫的這個程序的目錄中,例如我這個程序保存在了C:\Users\Administrator\Desktop\我的博客\opencv目錄下,保存的圖像就在C:\Users\Administrator\Desktop\我的博客\opencv目錄里呢~

所有代碼雙手奉上

這就是第一個程序,浩浩工程,漫漫長路,我們准備一起去大干一場吧!


# -*- coding:utf-8 -*-
"""
Created on Sun Dec 25 12:08:01 2016

@author: Y

"""
import cv2
import numpy as np

#一般而言寫程序的注釋部分習慣於用英文,不過今后為了大家能夠閱讀方便,改用中文
#以灰度模式載入彩色圖片(簡單而言,就是把彩色圖片變成黑白圖片了,將彩色圖像轉換為灰度模式時,所有的顏色信息都將被刪除)
img = cv2.imread('C:\Users\Administrator\Desktop\opencvimg\lemongrowup.png',0)
cv2.imshow('image',img)
k = cv2.waitKey(0)&0xFF
if k == 27:
cv2.destroyAllWindows()
elif k == ord('s'):
cv2.imwrite('lemongrowupgray.jpg',img)
cv2.destroyAllWindows()

運行結果
按下s后圖像就保存在這

多說一句,程序里我們用    ''    或者     ""    都是可以的,而我更喜歡    ''    一點,畢竟看起來干干凈凈。今天是聖誕節,昨天是平安夜,我是Y,祝大家天天開心,節日快樂!


免責聲明!

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



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