opencv 實(shí)踐入門1 - 安裝父泳,準(zhǔn)備和測試

我只是一名搬磚工般哼,無意侵犯各位大佬知識產(chǎn)權(quán)。
最近因項(xiàng)目組需要惠窄,開始學(xué)圖像處理
所以記錄一下這個(gè)過程以及經(jīng)驗(yàn)蒸眠,希望能幫到大家

學(xué)習(xí)參考資料:

1.《圖像處理的數(shù)學(xué)修養(yǎng)》

  1. github 上的OpenCV-Python-Tutorial

若想系統(tǒng)地學(xué)習(xí),麻煩移步到 github或買書啃一下


安裝 Python openCV

  1. anaconda cloud 搜索 opencv
  2. 選擇合適的版本杆融,我選的是第四個(gè)(anaconda/opencv, 其他版本我也不懂楞卡,要請教其他大佬)
  3. 點(diǎn)擊去,根據(jù)上面的命令安裝脾歇,比如:這個(gè)是 conda install -c anaconda opencv (藍(lán)色框)
  • 將這一句命令直接復(fù)制到你的 termnial (mac端) 或 cmder (win端, win+R, 輸入 'cmd'蒋腮,出現(xiàn)小黑框),直接按回車介劫,anaconda 會檢查需要安裝的附加包徽惋,選擇 y,一并下載和安裝座韵。
  • 紅色框是 opencv 的官方說明(英文),有能力的朋友可以看看,這會學(xué)習(xí)很有幫助

如果不知道什么是 anaconda誉碴,或者還沒有安裝 Python 的朋友宦棺,建議可以看看我寫的另一篇文章

測試是否安裝成功

  1. 準(zhǔn)備一張圖片,打開 spyder
import cv2

png = '/Users/brain.png'   ##圖片放置的路徑黔帕,最好放絕對路徑代咸,肯定不會出錯(cuò)。(我是 mac 玩家成黄,win 玩家自行修改)
img = cv2.imread(png,0)  # imread 讀入(加載)圖片呐芥,參數(shù)1,圖片文件路徑奋岁,參數(shù)2思瘟,讀入圖片格式,*1*:彩色(默認(rèn))闻伶,*0*:灰度圖滨攻,*-1*:包含透明通道的彩色圖

cv2.imshow('brain',img)  ## 顯示圖片,參數(shù)1蓝翰,窗口名字(隨便命名)光绕,參數(shù)2,要顯示的圖片

直接使用 imshow畜份,不能調(diào)節(jié)顯示窗口大小.png

可以先預(yù)設(shè)一個(gè)窗口 namedWindow诞帐,在這個(gè)窗口中打開圖片,這樣設(shè)置的窗口可以在打開后調(diào)整大小爆雹,適用于圖片較大的情況

import cv2

png = '/Users/brain.png'
img = cv2.imread(png,0)

# 先定義窗口停蕉,后顯示圖片
cv2.namedWindow('brain2', cv2.WINDOW_NORMAL) ##參數(shù)1是窗口名字,參數(shù)2 可選(cv2.WINDOW_AUTOSIZE:窗口大小自適應(yīng)圖片, cv2.WINDOW_NORMAL:窗口大小可調(diào)整)
cv2.imshow('brain2', img)
cv2.waitKey(0)
### waitKey 是讓程序暫停顶别,數(shù)字是暫停的時(shí)間谷徙,0代表一直等待

# 等待期間可以獲取用戶按鍵輸入,如

k = cv2.waitKey(0)
if k == 's':
    cv2.imshow('brain2', img)
    cv2.destroyAllWindows()  ### 關(guān)閉所有打開的窗口
使用namedWindow里面的cv2.WINDOW_NORMAL可以設(shè)置窗口大小.png

保存照片 cv2.imwrite()

import cv2

png = '/Users/brain.png'
picture = cv2.imread(png,0)

cv2.imwrite('brain_gray.jpg',picture)

處理前后對比.png

小結(jié) (基礎(chǔ)測試操作)

  • cv2.imread() 讀入圖片

    1. 如果缺少文件驯绎,權(quán)限不當(dāng)完慧,格式不受支持或無效,當(dāng)print(圖片)時(shí)剩失,將返回None.
    2. 該函數(shù)通過內(nèi)容而不是文件擴(kuò)展名來決定圖像類型.
    3. 圖像數(shù)據(jù)將以B,G,R的順序存儲. (mat接口)
  • cv2.imshow() 顯示圖片

    1. 打開圖片后退出關(guān)閉不了屈尼,卡住了
      解決辦法:(在我 macbook 上成功了,供大家參考)
    2. 用 cv2.destroyAllWindows()拴孤,并在其后面加 cv2.waitKey(1)
    cv2.destroyAllWindows()
    cv2.waitKey(1)
    
    其他地方爬到的解釋脾歧,我沒沒怎么看懂,但是確實(shí)有用.png
  • cv2.imwrite() 保存圖片

    1. cv2.imwrite(filename, img,[, params]) ## filename 保持路徑演熟,img保存的圖像名鞭执,
    2. params (對于JPEG司顿,其表示的是圖像的質(zhì)量,用0 - 100的整數(shù)表示兄纺,默認(rèn)95大溜;對于png ,第 三個(gè)參數(shù)表示的是壓縮級別。默認(rèn)為3)
    3. 完整代碼:
    cv2.imwrite('/Users/output/brain.png', img,[int(cv2.IMWRITE_JPEG_QUALITY), 90])
    
  • cv2.waitKey(0) 讓程序等待

    • 括號里面的數(shù)字代表時(shí)間估脆,單位 ms钦奋。0表示一直等待
    • 在等待的過程中,可以接受用戶輸入疙赠,如:
      需要注意的是付材,這里的輸入不在 console,而是要點(diǎn)擊圖片窗口
    input = cv2.waitKey(0)
    

應(yīng)用: (原地址)
  1. 加載一幅灰度圖像圃阳,顯示它厌衔,如果按's'則保存圖像并退出,如果按ESC鍵直接退出
import cv2

img = cv2.imread('/Users/brain.png',0)
cv2.imshow('brain',img)
k = cv2.waitKey(0)& 0xFF
if k == 27:         # wait for ESC key to exit
    cv2.destroyAllWindows()
    cv2.waitKey(1)
elif k == ord('s'): # wait for 's' key to save and exit
    cv2.imwrite('brain_gray.png',img)
    cv2.destroyAllWindows()
    cv2.waitKey(1)
  1. 和Python 的Matplotlib結(jié)合使用.
import cv2
from matplotlib import pyplot as plt

img = cv2.imread('/Users/brain.png',0)
plt.imshow(img, cmap = 'gray', interpolation = 'bicubic')
plt.xticks([]), plt.yticks([])  # to hide tick values on X and Y axis
plt.show()
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末限佩,一起剝皮案震驚了整個(gè)濱河市葵诈,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌祟同,老刑警劉巖作喘,帶你破解...
    沈念sama閱讀 221,198評論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異晕城,居然都是意外死亡泞坦,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評論 3 398
  • 文/潘曉璐 我一進(jìn)店門砖顷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來贰锁,“玉大人,你說我怎么就攤上這事滤蝠⊥阆ǎ” “怎么了?”我有些...
    開封第一講書人閱讀 167,643評論 0 360
  • 文/不壞的土叔 我叫張陵物咳,是天一觀的道長锣险。 經(jīng)常有香客問我,道長览闰,這世上最難降的妖魔是什么芯肤? 我笑而不...
    開封第一講書人閱讀 59,495評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮压鉴,結(jié)果婚禮上崖咨,老公的妹妹穿的比我還像新娘。我一直安慰自己油吭,他們只是感情好击蹲,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,502評論 6 397
  • 文/花漫 我一把揭開白布署拟。 她就那樣靜靜地躺著,像睡著了一般际邻。 火紅的嫁衣襯著肌膚如雪芍阎。 梳的紋絲不亂的頭發(fā)上世曾,一...
    開封第一講書人閱讀 52,156評論 1 308
  • 那天谴咸,我揣著相機(jī)與錄音,去河邊找鬼岭佳。 笑死血巍,一個(gè)胖子當(dāng)著我的面吹牛珊随,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播叶洞,決...
    沈念sama閱讀 40,743評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼鲫凶,長吁一口氣:“原來是場噩夢啊……” “哼衩辟!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起艺晴,我...
    開封第一講書人閱讀 39,659評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎封寞,沒想到半個(gè)月后然评,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,200評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡狈究,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,282評論 3 340
  • 正文 我和宋清朗相戀三年碗淌,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片谦炒。...
    茶點(diǎn)故事閱讀 40,424評論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡贯莺,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出宁改,到底是詐尸還是另有隱情缕探,我是刑警寧澤,帶...
    沈念sama閱讀 36,107評論 5 349
  • 正文 年R本政府宣布还蹲,位于F島的核電站爹耗,受9級特大地震影響耙考,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜潭兽,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,789評論 3 333
  • 文/蒙蒙 一倦始、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧山卦,春花似錦鞋邑、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至铸本,卻和暖如春肮雨,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背箱玷。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評論 1 271
  • 我被黑心中介騙來泰國打工怨规, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人锡足。 一個(gè)月前我還...
    沈念sama閱讀 48,798評論 3 376
  • 正文 我出身青樓波丰,卻偏偏與公主長得像,于是被迫代替她去往敵國和親舱污。 傳聞我的和親對象是個(gè)殘疾皇子呀舔,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,435評論 2 359