《計算機視覺》課件-第2章 Python與OpenCV運行環(huán)境_第1頁
《計算機視覺》課件-第2章 Python與OpenCV運行環(huán)境_第2頁
《計算機視覺》課件-第2章 Python與OpenCV運行環(huán)境_第3頁
《計算機視覺》課件-第2章 Python與OpenCV運行環(huán)境_第4頁
《計算機視覺》課件-第2章 Python與OpenCV運行環(huán)境_第5頁
已閱讀5頁,還剩46頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第2章Python與OpenCV運行環(huán)境2目錄2.1Python環(huán)境配置2.22.3OpenCV環(huán)境配置OpenCV視覺庫模塊功能計算機視覺

2.1Python語言計算機視覺

單擊編輯標(biāo)題Python是一門計算機編程語言。◆結(jié)合了解釋性、編譯性、互動性和面向?qū)ο蟮母邔哟斡嬎銠C編程語言;◆1989年荷蘭Guido發(fā)明了一種面向?qū)ο蟮慕忉屝途幊陶Z言開放源代碼;◆python設(shè)計哲學(xué):優(yōu)雅、明確、簡潔。計算機視覺

一、基本概念◆Python解釋器是將python源碼高級語言解析為二進(jìn)制機器語言的工具。通常說安裝python就是指安轉(zhuǎn)python解釋器。計算機視覺

◆正如在電腦上編輯文檔需要用Word、處理數(shù)據(jù)需要用Excel、做演示文稿需要用PPT、修圖需要用PS一樣,編寫代碼也需要特定的工具。而這個用來編寫代碼的工具就叫做編輯器。Python的編輯器有很多,有Python解釋器自帶的IDLE、基于iPython的JupyterNotebook、也有如PyCharm、Spyder、WingIDE等主要針對Python代碼編輯的編輯器;還有很多編輯器,如SublimeText、vSCode、Vim等適合各種編程語言的編輯器?!鬚ython最大的優(yōu)點之一就在于其豐富的庫,pip(packageinstallerforPython)就是庫管理工具,通過pip就可以安裝、卸載、更新眾多的庫。Pythonpip,pip(最大的優(yōu)點之一就在于其豐富的庫的包安裝程序)就是庫管理工具,通過pip就可以安裝、卸載、更新眾多的庫?!舭惭bpython涉及到python解釋器、代碼編輯器和pip包管理工具者3個工具計算機視覺

二、Python解釋器版本◆Python2已停止更新的最高版本是Python2.7;◆推薦選擇Python3的較新版本;◆尋找Python3的教程和代碼;◆舊的Python2.7的代碼轉(zhuǎn)換成3的版本:運用第三方工具(Python2.x和Python3.x不兼容)。一般說的安裝Python就是指安裝Python解釋器,因此Python解釋器必須安裝。目前,Python有兩個流行的版本Python2和Python3。三、安裝Python解釋器+第三方編輯器Pycharm計算機視覺

在Windows上安裝Python解釋器?!鬚ython安裝包下載地址:/downloads/◆選擇Python3.9.x的版本,點擊Download計算機視覺

◆點進(jìn)去之后,滾動到下面,選擇Windowsinstaller(64-bit)的版本◆這也是官方推薦(Recommended)的◆說明:以Windowsx86-64開頭的是64位的Python安裝程序,目前主流◆步驟4:點擊前面的Version超鏈接下載計算機視覺

◆勾選AddPython3.9toPATH,這樣可以將Python命令工具所在目錄添加到系統(tǒng)Path環(huán)境變量中,以后開發(fā)程序或者運行Python命令會非常方便◆選擇自定義安裝◆Python支持兩種安裝方式,默認(rèn)安裝和自定義安裝:默認(rèn)安裝會勾選所有組件,并安裝在C盤;自定義安裝可以手動選擇要安裝的組件,并安裝到其它盤符。計算機視覺

計算機視覺

◆選擇好你常用的安裝目錄,點擊“Install”,等待幾分鐘就可以完成安裝計算機視覺

◆安裝完成以后,打開Windows的命令行程序(命令提示符),在窗口中輸入python命令(注意字母p是小寫的),如果出現(xiàn)Python的版本信息,并看到命令提示符>>>,就說明安裝成功了計算機視覺

◆運行python命令啟動的是python交互式編程環(huán)境,我們可以在>>>后面輸入代碼,并立即看到執(zhí)行結(jié)果◆按下Ctrl+Z快捷鍵,或者輸exit()命令即可退出交互式編程環(huán)境,回到Windows命令行程序計算機視覺

Python解釋器3.4以后的版本自帶pip包管理工具,且自帶代碼編輯器IDLE,因此安裝了3.4之后的版本的解釋器就相當(dāng)于安裝了3個工具?!鬒DLE的全稱是IntegratedDevelopmentandLearningEnvironment是Python自帶的集成開發(fā)和學(xué)習(xí)環(huán)境◆Windows開始◆搜索IDLE◆打開窗口計算機視覺

◆在實際開發(fā)中,通常不能只包含一行代碼,當(dāng)需要編寫多行代碼時,可以單獨創(chuàng)建一個文件保存這些代碼,在全部編寫完成后一起執(zhí)行◆

File->NewFile”菜單項,將打開一個新窗口,在該窗口中,可以直接編寫Python代碼◆py是Python文件的擴展名◆在菜單欄中選擇“Run->RunModule”菜單項計算機視覺

但是,由于Python解釋器自帶的IDLE不好使用,只適合少量代碼編輯。因此,一般會再安裝一個第三方的編輯器,如pycharm,vscode等。PyCharm安裝,

PyCharm是由JetBrains開發(fā)的IDE◆

Python安裝包下載地址:/products.html◆

選擇PyCharm進(jìn)入計算機視覺

◆PyCharm有兩個版本◆

專業(yè)版(收費)Professional◆

社區(qū)版(免費)Community◆

社區(qū)版功能上少一點,不過我們學(xué)習(xí)足夠了計算機視覺

◆選中下載下來的文件,點擊右鍵◆

選擇“以管理員身份運行計算機視覺

可以保持默認(rèn)的安裝目錄◆

如果需要更改,點擊Browse選擇一個自己喜歡的安裝位置◆

點擊Next計算機視覺

勾選CreateDesktopShortcut創(chuàng)建一個桌面快捷方式,其他的選項可以忽略不選◆點擊Next計算機視覺

◆安裝完畢后,可以不直接RunPyCharm◆

等一會用桌面的快捷方式圖標(biāo)運行◆

點擊Finish計算機視覺

桌面上的快捷方式點擊右鍵◆

選擇“以管理員身份運行計算機視覺

Customize是個性化IDE的界面◆

可以調(diào)節(jié)字號大小◆

顯示界面的顏色(黑色或白色)計算機視覺

◆新建工程Project◆

為新工程起名pythonProject001◆

設(shè)定解釋器interpreter計算機視覺

◆點擊右鍵New◆

新建PythonFile計算機視覺

◆輸入測試程序◆運行查看結(jié)果計算機視覺

四、安裝anaconda+第三方編輯器Pycharm◆anaconda有兩個好處,一是集成了很多常用的,尤其是和數(shù)據(jù)分析相關(guān)的第三方庫以及python3.7版本解釋器以及很多編輯器(如jupyter、Spyder等)﹔二是可以創(chuàng)建虛擬環(huán)境,兼容python2.x和python3.x,因此更加方便,因此很多人會選擇安裝anaconda(安裝anaconda就不用按照第上面方法操作了),只要安裝了anaconda,也就相當(dāng)于集齊了安裝python需要的3個工具,而且更多?!魹槭裁催€要安裝pycharm呢(只要安裝了anaconda,完全可以不安裝pycharm),只是因為anaconda雖然有很多編輯器〈(如jupyter、Spyder等),但是pycharm是專門針對python的,非常方便,行業(yè)應(yīng)用多,因此,作為長期學(xué)習(xí)工作考慮,有必要安裝學(xué)習(xí)。計算機視覺

安裝Anaconda官網(wǎng)下載地址:(選擇Windows64bit)https:///products/individual

計算機視覺

雙擊下載好的exe文件進(jìn)行安裝,點擊next,點擊iagree,選擇justforme點擊next,點擊browse選擇安裝目錄,勾選紅色框點擊install等待完成,點擊next,點擊skip,取消兩個勾選框點擊finish;計算機視覺

按win+R,輸入cmd進(jìn)入終端,輸入python,如果出現(xiàn)Python版本信息說明安裝成功(如果看不到嘗試先進(jìn)入安裝目錄在輸入python)。計算機視覺

在計算機視覺項目的開發(fā)中,OpenCV(OpenSourceComputerVisionLibrary)作為最大眾的開源庫,擁有了豐富的常用圖像處理函數(shù)庫,采用C/C++語言編寫,可以運行在Linux、Windows、Mac等操作系統(tǒng)上,能夠快速的實現(xiàn)一些圖像處理和識別的任務(wù)。此外,OpenCV還提供了java、python、cuda等的使用接口、機器學(xué)習(xí)的基礎(chǔ)算法調(diào)用,從而使得圖像處理和圖像分析變得更加易于上手,讓開發(fā)人員更多的精力花在算法的設(shè)計上。2.2OpenCV視覺庫計算機視覺

OpenCV的應(yīng)用領(lǐng)域OpenCV是一個用于圖像處理、分析、機器視覺方面的開源函數(shù)庫,該庫也包含了比較常用的一些機器學(xué)習(xí)算法?;蛟S,很多人知道圖像識別、機器視覺在安防領(lǐng)域有所應(yīng)用。但很少有人知道,在航拍圖片、街道圖片(例如googlestreetview)中,要嚴(yán)重依賴于機器視覺的攝像頭標(biāo)定、圖像融合等技術(shù)。近年來,在入侵檢測、特定目標(biāo)跟蹤、目標(biāo)檢測、人臉檢測、人臉識別、人臉跟蹤等領(lǐng)域,OpenCV可謂大顯身手,而這些,僅僅是其應(yīng)用的冰山一角。如今,來自世界各地的各大公司、科研機構(gòu)的研究人員,共同維護(hù)支持著OpenCV的開源庫開發(fā)。這些公司和機構(gòu)包括:微軟,IBM,索尼、西門子、google、intel、斯坦福、MIT、CMU、劍橋。計算機視覺

計算機視覺

OpenCV-python安裝前面安裝好anaconda后,可以在anaconda下創(chuàng)建一個opencv-python環(huán)境首先,打開anacondanavigator,然后創(chuàng)建一個環(huán)境來放opencv-python。先點擊下面的create,然后創(chuàng)建一個新環(huán)境。2.2OpenCV視覺庫計算機視覺

選擇python版本,這里選擇的是Python3.6。也可以根據(jù)需要和習(xí)慣來選擇合適的python版本。環(huán)境名字可以自己命名,但是盡量寫自己能看懂的...這里已經(jīng)創(chuàng)建了一個叫opencv-python的環(huán)境,為了演示,這里創(chuàng)建一個叫Pytorch_envs的環(huán)境。然后會自動開始下載一些相關(guān)包。計算機視覺

之后,打開anacondaprompt。先激活環(huán)境:activateopenCV(這里打開的是已經(jīng)創(chuàng)建好的openCV環(huán)境,前面只做過程講解)完成到這一步代表OpenCV環(huán)境框架搭建完成計算機視覺

安裝numpy:pipinstallnumpy安裝OpenCV-Python:pipinstallopencv-python安裝imutils:pip

installimutils安裝scipy:pipinstallscipy安裝完opencv-python后命令行打開python交互式環(huán)境:importcv2成功,便說明成功安裝了opencv-python計算機視覺

2.3OpenCV視覺庫模塊OpenCV的CV模塊包含基本的圖像處理函數(shù)和高級的計算機視覺算法。ML是機器學(xué)習(xí)庫,包含一些基于統(tǒng)計的分類和聚類工具。HighGUI包含圖像和視頻輸入/輸出的函數(shù)。CXCore包含OpenCV的一些基本數(shù)據(jù)結(jié)構(gòu)和相關(guān)函數(shù)。計算機視覺

計算機視覺

OpenCV圖像基本操作1.圖像的讀、寫、顯示(1)圖像讀取cv2.imread(文件名,顯示控制參數(shù)),第一個參數(shù)是圖像文件名,第二個參數(shù)是要告訴函數(shù)應(yīng)該如何讀取這幅圖像。cv2.IMREAD_COLOR:讀入一副彩色圖像,圖像的透明度會被忽略,這是默認(rèn)參數(shù)。cv2.IMREAD_GRAYSCALE:以灰度模式讀入圖像。(2)圖像顯示dWindow(窗口名),創(chuàng)建指定名稱的窗口。cv2.imshow(窗口名,圖像名),在指定的窗口顯示圖像。cv2.destroyWindow(窗口名),刪除指定窗口。cv2.destroyAllWindow(),刪除所有窗口。cv2.waitKey([delay]),鍵盤綁定函數(shù),當(dāng)decay>0時,等待delay毫秒;當(dāng)decay<0時,等待鍵盤單擊;當(dāng)decay=0時,無限等待。計算機視覺

#OpenCV讀入圖像,matplotlib顯示importcv2ascvfrommatplotlibimportpyplotaspltimg=cv.imread("D:\opencv\lenna.jpg")b,g,r=cv.split(img)img2=cv.merge([r,g,b])plt.subplot(121),plt.imshow(img),plt.xticks([]),plt.yticks([])plt.subplot(122),plt.imshow(img2),plt.xticks([]),plt.yticks([])plt.show()(a)未經(jīng)通道變換(b)經(jīng)過通道變換計算機視覺

(3)圖像保存cv2.imwrite(文件名,圖像名),第一個參數(shù)是保存的文件名,第二個參數(shù)是要保存的圖像。圖像讀、顯示、寫示例#OpenCV圖像讀取、顯示和保存importcv2img=cv2.imread('D:/opencv/bird.jpg')dWindow("Image")cv2.imshow("Image",img)cv2.waitKey(0)cv2.destroyAllWindows()cv2.imwrite('D:\\opencv\\bird2.jpg',img)

計算機視覺

2圖像幾何變換(1)圖像的平移平移對應(yīng)的齊次坐標(biāo)矩陣表示形式為:以圖像沿x方向移動100像素、y方向移動50像素為例,實現(xiàn)程序如下:。#圖像平移importcv2importnumpyasnpimportmatplotlib.pyplotaspltimg=cv2.imread('D:/opencv/flower.jpg')M=np.float32([[1,0,100],[0,1,50]])#變換矩陣rows,cols=img.shape[:2]#warpAffine有三個參數(shù),原始圖像、變換矩陣、變換后的圖像大小res=cv2.warpAffine(img,M,(rows,cols))b,g,r=cv2.split(img)img=cv2.merge([r,g,b])b,g,r=cv2.split(res)res=cv2.merge([r,g,b])plt.subplot(121)plt.imshow(img)plt.subplot(122)plt.imshow(res)plt.show()

計算機視覺

(2)圖像的縮放對應(yīng)的齊次坐標(biāo)矩陣表示形式為:圖像的擴大與縮小有專門函數(shù),cv2.resize()在函數(shù)cv2.resize()中,有幾種不同的插值(interpolation)方法可供選擇,在縮小時推薦cv2.INTER_ARER方法,擴大時推薦cv2.INTER_CUBIC和cv2.INTER_LINEAR方法,默認(rèn)情況下采用cv2.INTER_LINEAR方法。以圖像寬度不變、高度放大一倍為例,縮放程序示例如下:#圖像縮放importnumpyasnpimportcv2ascvfrommatplotlibimportpyplotaspltimg=cv.imread("D:/opencv/flower.jpg")height,width=img.shape[:2]Scaling_img=cv.resize(img,(1*width,2*height),interpolation=cv.INTER_CUBIC)dWindow("Image")cv.imshow('Scalingimage',Scaling_img)cv.imshow('Imputimage',img)cv.waitKey(0)cv.destroyAllWindows()

計算機視覺

(3)圖像的旋轉(zhuǎn)對應(yīng)的齊次坐標(biāo)矩陣表示形式為:cv2.getRotationMatrix2D(),用來獲得旋轉(zhuǎn)變換矩陣。這個函數(shù)需要三個參數(shù),旋轉(zhuǎn)中心,旋轉(zhuǎn)角度,旋轉(zhuǎn)后圖像的縮放比例。以圖像旋轉(zhuǎn)45度為例,實現(xiàn)程序如下:#圖像旋轉(zhuǎn)importcv2importnumpyasnpimportmatplotlib.pyplotaspltimg=cv2.imread('D:/opencv/flower.jpg')rows,cols=img.shape[:2]#獲得旋轉(zhuǎn)變換矩陣M,參數(shù)一是旋轉(zhuǎn)中心,參數(shù)二旋轉(zhuǎn)角度,參數(shù)三縮放比例M=cv2.getRotationMatrix2D((cols/2,rows/2),45,1)#獲得M后,調(diào)用cv2.warpAffine函數(shù)得到旋轉(zhuǎn)后的圖像res=cv2.warpAffine(img,M,(cols,rows))b,g,r=cv2.split(img)img=cv2.merge([r,g,b])b,g,r=cv2.split(res)res=cv2.merge([r,g,b])plt.subplot(121),plt.imshow(img)plt.subplot(122),plt.imshow(res)plt.show()計算機視覺

(4)圖像的翻轉(zhuǎn)垂直(以X軸為對稱軸)翻轉(zhuǎn)對應(yīng)的齊次坐標(biāo)矩陣表示形式為OpenCV中提供了函數(shù)cv2.flip(src,flipCode)來實現(xiàn)圖像的翻轉(zhuǎn),scr為原圖像,flipCode為翻轉(zhuǎn)代碼:flipCode=0,以X軸為對稱軸翻轉(zhuǎn);flipCode>0,以Y軸為對稱軸翻轉(zhuǎn);flipCode<0,同時沿X、Y軸翻轉(zhuǎn)。水平、垂直、水平垂直翻轉(zhuǎn)示例#圖像翻轉(zhuǎn)importcv2importnumpyasnpfrommatplotlibimportpyplotaspltimage=cv2.imread('D:/opencv/flower.jpg')#FlippedHorizontally水平翻轉(zhuǎn)h_flip=cv2.flip(image,1)#FlippedVertically垂直翻轉(zhuǎn)v_flip=cv2.flip(image,0)#FlippedHorizontally&Vertically水平垂直翻轉(zhuǎn)hv_flip=cv2.flip(image,-1)plt.figure(figsize=(8,8))plt.subplot(221),plt.imshow(image[:,:,::-1]),plt.title('original')plt.subplot(222),plt.imshow(h_flip[:,:,::-1]),plt.title('horizontalflip')plt.subplot(223),plt.imshow(v_flip[:,:,::-1]),plt.title('verticalflip')plt.subplot(224),plt.imshow(hv_flip[:,:,::-1]),plt.title('h_vflip')#調(diào)整子圖間距plt.subplots_adjust(top=0.9,bottom=0.2,left=0.10,right=0.95,hspace=0.4,wspace=0.05)plt.show()

計算機視覺

(5)圖像的剪裁取原圖像x方向100:350像素、y方向100:350像素的圖像,代碼如下#圖像剪裁importcv2ascvimportnumpyasnpimg=cv.imread("D:/opencv/flower.jpg")img2=img[100:350,100:350]cv.imshow('image',img2)cv.waitKey(0)

計算機視覺

(6)圖像的仿射圖像旋轉(zhuǎn)加上拉伸形成圖像仿射變換。仿射變換需要確定變換矩陣MOpenCV提供一種根據(jù)變換前后三個點(左上角,左下角,右上角)的對應(yīng)關(guān)系來自動求解變換矩陣M的函數(shù),M=cv2.getAffineTransform(pos1,pos2),參數(shù)pos1和pos2分別為變換前后三個點的位置。得到M

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論