走進Python-OpenCV:cv2.imread(),cv2.imshow(),cv2.imwrite()

爲什麼使用Python-OpenCV

雖然python 很強大,而且也有自己的圖像處理庫PIL,但是相對於OpenCV 來講,它還是弱小很多。跟很多開源軟件一樣OpenCV 也提供了完善的python 接口,非常便於調用。OpenCV 的穩定版是2.4.8,最新版是3.0,包含了超過2500 個算法和函數,幾乎任何一個能想到的成熟算法都可以通過調用OpenCV 的函數來實現,超級方便。

一、需要工具

本機使用python 2.7.10下調試代碼均通過,一下學習需要有一定的代碼閱讀能力,一下學習只介紹函數方法:

Python 作爲一種高效簡潔的直譯式語言非常適合我們用來解決日常工作的問題。而且它簡單易學,初學者幾個小時就可以基本入門。再加上Numpy 和matplotlib 這兩個翅膀,Python 對數據分析的能力不遜於Matlab。Python 還被稱爲是膠水語言,有很多軟件都提供了Python 接口。尤其是在linux 下,可以使用Python 將不同的軟件組成一個工作流,發揮每一個軟件自己最大的優勢從而完成一個複雜的任務。比如我們可以使用Mysql 存儲數據,使用R 分析數據,使用matplotlib 展示數據,使用OpenGL 進行3D 建模,使用Qt 構建漂亮的GUI。而Python 可以將他們聯合在一起構建一個強大的工作流。

二、入門小試

1、圖像讀入:cv2.imread()

使用函數cv2.imread() 讀入圖像。這幅圖像應該在此程序的工作路徑,或者給函數提供完整路徑,第二個參數是要告訴函數應該如何讀取這幅圖片。

• cv2.IMREAD_COLOR:讀入一副彩色圖像。圖像的透明度會被忽略,
這是默認參數。
• cv2.IMREAD_GRAYSCALE:以灰度模式讀入圖像

# -*- coding: utf-8 -*-
"""
Created on Mon Sep 07 19:51:58 2015

@author: Eddy_zheng
"""
import cv2
#import numpy as np

# 灰度圖模式加載一副彩圖
img = cv2.imread('lena.jpg',0) #沒有女神lena的,下方可以自行保存 @_@

PS:調用opencv,就算圖像的路徑是錯的,OpenCV 也不會提醒你的,但是當你使用命
令print img時得到的結果是None。

2、顯示圖像cv2.imshow()

使用函數cv2.imshow() 顯示圖像。窗口會自動調整爲圖像大小。第一個參數是窗口的名字,其次纔是我們的圖像。你可以創建多個窗口,只要你喜歡,但是必須給他們不同的名字。

cv2.imshow('image',img)

cv2.waitKey(0) 
"""
cv2.waitKey() 是一個鍵盤綁定函數。需要指出的是它的時間尺度是毫
秒級。函數等待特定的幾毫秒,看是否有鍵盤輸入。特定的幾毫秒之內,如果
按下任意鍵,這個函數會返回按鍵的ASCII 碼值,程序將會繼續運行。如果沒
有鍵盤輸入,返回值爲-1,如果我們設置這個函數的參數爲0,那它將會無限
期的等待鍵盤輸入。它也可以被用來檢測特定鍵是否被按下,例如按鍵a 是否
被按下,這個後面我們會接着討論。
"""
cv2.destroyAllWindows()
"""
cv2.destroyAllWindows() 可以輕易刪除任何我們建立的窗口。如果
你想刪除特定的窗口可以使用cv2.destroyWindow(),在括號內輸入你想刪
除的窗口名。
"""

3、保存圖像cv2.imwrite()

cv2.imwrite('lena.png',img)

lena:這裏寫圖片描述

發佈了52 篇原創文章 · 獲贊 215 · 訪問量 85萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章