




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第1章計算機視覺概述1全套PPT課件第1章計算機視覺概述.pptx第2章Python與OpenCV運行環(huán)境.pptx第3章圖像預處理.pptx第4章圖像特征提取.pptx第5章圖像分類.pptx第6章神經網(wǎng)絡基礎.pptx第7章卷積神經網(wǎng)絡的基本概念.pptx第8章目標檢測.pptx第9章其他深度學習網(wǎng)絡.pptx第10章人臉表情識別研究.pptx目錄1.1計算機視覺的研究目標及相關歷史1.21.3計算機視覺的發(fā)展計算機視覺的任務1.4計算機視覺與其他學科的關系計算機視覺
1.1計算機視覺的研究目標及相關歷史一、人類視覺系統(tǒng)與計算機視覺系統(tǒng)圖像(或視頻)感應裝置解釋設備感知結果橋,水,樹,花,綠色等結果:春天的花園,人類視覺系統(tǒng):計算機視覺系統(tǒng):計算機視覺
計算機視覺(Computer
Vision,
CV):是一門研究如何讓計算機實現(xiàn)人類視覺系統(tǒng)功能的學科。
簡單說,就是給計算機安裝上眼睛(攝像機)和大腦(算法),讓計算機像人一樣去看、去感知環(huán)境。計算機視覺的主要的目標:讓計算機通過數(shù)值矩陣認識圖片并完成特定的任務。計算機視覺
二、計算機視覺歷史回顧生物視覺的發(fā)展計算機視覺
機器視覺的發(fā)展計算機視覺
人類視覺神經的啟迪計算機視覺
1.2計算機視覺的發(fā)展
BlockworldLarry
Roberts,1963通過計算機程序從數(shù)字圖像中提取諸如立方體、稧狀體、棱柱體等多面體的三維結構,并對物體形狀及物體的空間關系進行描述。計算機視覺
計算機視覺
1970DavidMarr提出了計算視覺理論計算機視覺
視覺神經系統(tǒng)認知過程第一階段抽取原始圖像的邊緣、紋理、線條、邊界等基本特征,這些特征的集合稱為基元圖第二階段在以觀測者為中心的坐標中,由輸入圖像和基元圖恢復場景信息(深度、法線方向、輪廓等),這些信息包含了深度信息,但不是真正的物理三維表示,因此,稱為二維半圖第三階段在以物體為中心的坐標系中,由基元圖、二維半圖提升到三維表達計算機視覺
卷積神經網(wǎng)絡-20
世紀
80
年代卷積神經網(wǎng)絡技術的實現(xiàn),使計算機視覺的研究邁上了一個新臺階-CNN由許多神經網(wǎng)絡層組成。卷積和池化這兩種不同類型的層通常是交替的。網(wǎng)絡中每個濾波器的深度從左到右增加。最后通常由一個或多個全連接層組成-生物視覺中的“局部感受野”是卷積神經網(wǎng)絡的理論基礎計算機視覺
-深度學習技術發(fā)展計算機視覺
-CNN和深度神經網(wǎng)絡才流行起來的原因一是CPU和GPU的計算能力不斷加強,尤其是GPU的并行能力對于神經網(wǎng)絡中的計算很有幫助。二是大數(shù)據(jù),無論是什么樣的機器學習算法,沒有足夠的數(shù)據(jù)量都容易overfitting,而現(xiàn)在有了足夠大的有標記的數(shù)據(jù)庫。計算機視覺
圖像分類挑戰(zhàn):1000個對象類1431167張圖片
互聯(lián)網(wǎng)技術的飛速發(fā)展為深度學習技術的應用提供了海量的數(shù)據(jù)
2010-2014基于ImageNet上的圖像分類競賽
0.26
0.16
0.12
0.07計算機視覺
1.3計算機視覺的任務圖像分類計算機視覺
目標檢測計算機視覺
圖像語義分割計算機視覺
圖像生成計算機視覺
視頻分類計算機視覺
1.4計算機視覺與其它學科的聯(lián)系第2章Python與OpenCV運行環(huán)境2目錄2.1Python環(huán)境配置2.22.3OpenCV環(huán)境配置OpenCV視覺庫模塊功能計算機視覺
2.1Python語言計算機視覺
單擊編輯標題Python是一門計算機編程語言?!艚Y合了解釋性、編譯性、互動性和面向對象的高層次計算機編程語言;◆1989年荷蘭Guido發(fā)明了一種面向對象的解釋型編程語言開放源代碼;◆python設計哲學:優(yōu)雅、明確、簡潔。計算機視覺
一、基本概念◆Python解釋器是將python源碼高級語言解析為二進制機器語言的工具。通常說安裝python就是指安轉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就可以安裝、卸載、更新眾多的庫。◆安裝python涉及到python解釋器、代碼編輯器和pip包管理工具者3個工具計算機視覺
二、Python解釋器版本◆Python2已停止更新的最高版本是Python2.7;◆推薦選擇Python3的較新版本;◆尋找Python3的教程和代碼;◆舊的Python2.7的代碼轉換成3的版本:運用第三方工具(Python2.x和Python3.x不兼容)。一般說的安裝Python就是指安裝Python解釋器,因此Python解釋器必須安裝。目前,Python有兩個流行的版本Python2和Python3。三、安裝Python解釋器+第三方編輯器Pycharm計算機視覺
在Windows上安裝Python解釋器。◆Python安裝包下載地址:/downloads/◆選擇Python3.9.x的版本,點擊Download計算機視覺
◆點進去之后,滾動到下面,選擇Windowsinstaller(64-bit)的版本◆這也是官方推薦(Recommended)的◆說明:以Windowsx86-64開頭的是64位的Python安裝程序,目前主流◆步驟4:點擊前面的Version超鏈接下載計算機視覺
◆勾選AddPython3.9toPATH,這樣可以將Python命令工具所在目錄添加到系統(tǒng)Path環(huán)境變量中,以后開發(fā)程序或者運行Python命令會非常方便◆選擇自定義安裝◆Python支持兩種安裝方式,默認安裝和自定義安裝:默認安裝會勾選所有組件,并安裝在C盤;自定義安裝可以手動選擇要安裝的組件,并安裝到其它盤符。計算機視覺
計算機視覺
◆選擇好你常用的安裝目錄,點擊“Install”,等待幾分鐘就可以完成安裝計算機視覺
◆安裝完成以后,打開Windows的命令行程序(命令提示符),在窗口中輸入python命令(注意字母p是小寫的),如果出現(xiàn)Python的版本信息,并看到命令提示符>>>,就說明安裝成功了計算機視覺
◆運行python命令啟動的是python交互式編程環(huán)境,我們可以在>>>后面輸入代碼,并立即看到執(zhí)行結果◆按下Ctrl+Z快捷鍵,或者輸exit()命令即可退出交互式編程環(huán)境,回到Windows命令行程序計算機視覺
Python解釋器3.4以后的版本自帶pip包管理工具,且自帶代碼編輯器IDLE,因此安裝了3.4之后的版本的解釋器就相當于安裝了3個工具?!鬒DLE的全稱是IntegratedDevelopmentandLearningEnvironment是Python自帶的集成開發(fā)和學習環(huán)境◆Windows開始◆搜索IDLE◆打開窗口計算機視覺
◆在實際開發(fā)中,通常不能只包含一行代碼,當需要編寫多行代碼時,可以單獨創(chuàng)建一個文件保存這些代碼,在全部編寫完成后一起執(zhí)行◆
File->NewFile”菜單項,將打開一個新窗口,在該窗口中,可以直接編寫Python代碼◆py是Python文件的擴展名◆在菜單欄中選擇“Run->RunModule”菜單項計算機視覺
但是,由于Python解釋器自帶的IDLE不好使用,只適合少量代碼編輯。因此,一般會再安裝一個第三方的編輯器,如pycharm,vscode等。PyCharm安裝,
PyCharm是由JetBrains開發(fā)的IDE◆
Python安裝包下載地址:/products.html◆
選擇PyCharm進入計算機視覺
◆PyCharm有兩個版本◆
專業(yè)版(收費)Professional◆
社區(qū)版(免費)Community◆
社區(qū)版功能上少一點,不過我們學習足夠了計算機視覺
◆選中下載下來的文件,點擊右鍵◆
選擇“以管理員身份運行計算機視覺
◆
可以保持默認的安裝目錄◆
如果需要更改,點擊Browse選擇一個自己喜歡的安裝位置◆
點擊Next計算機視覺
◆
勾選CreateDesktopShortcut創(chuàng)建一個桌面快捷方式,其他的選項可以忽略不選◆點擊Next計算機視覺
◆安裝完畢后,可以不直接RunPyCharm◆
等一會用桌面的快捷方式圖標運行◆
點擊Finish計算機視覺
◆
桌面上的快捷方式點擊右鍵◆
選擇“以管理員身份運行計算機視覺
◆
Customize是個性化IDE的界面◆
可以調節(jié)字號大小◆
顯示界面的顏色(黑色或白色)計算機視覺
◆新建工程Project◆
為新工程起名pythonProject001◆
設定解釋器interpreter計算機視覺
◆點擊右鍵New◆
新建PythonFile計算機視覺
◆輸入測試程序◆運行查看結果計算機視覺
四、安裝anaconda+第三方編輯器Pycharm◆anaconda有兩個好處,一是集成了很多常用的,尤其是和數(shù)據(jù)分析相關的第三方庫以及python3.7版本解釋器以及很多編輯器(如jupyter、Spyder等)﹔二是可以創(chuàng)建虛擬環(huán)境,兼容python2.x和python3.x,因此更加方便,因此很多人會選擇安裝anaconda(安裝anaconda就不用按照第上面方法操作了),只要安裝了anaconda,也就相當于集齊了安裝python需要的3個工具,而且更多?!魹槭裁催€要安裝pycharm呢(只要安裝了anaconda,完全可以不安裝pycharm),只是因為anaconda雖然有很多編輯器〈(如jupyter、Spyder等),但是pycharm是專門針對python的,非常方便,行業(yè)應用多,因此,作為長期學習工作考慮,有必要安裝學習。計算機視覺
安裝Anaconda官網(wǎng)下載地址:(選擇Windows64bit)https:///products/individual
計算機視覺
雙擊下載好的exe文件進行安裝,點擊next,點擊iagree,選擇justforme點擊next,點擊browse選擇安裝目錄,勾選紅色框點擊install等待完成,點擊next,點擊skip,取消兩個勾選框點擊finish;計算機視覺
按win+R,輸入cmd進入終端,輸入python,如果出現(xiàn)Python版本信息說明安裝成功(如果看不到嘗試先進入安裝目錄在輸入python)。計算機視覺
在計算機視覺項目的開發(fā)中,OpenCV(OpenSourceComputerVisionLibrary)作為最大眾的開源庫,擁有了豐富的常用圖像處理函數(shù)庫,采用C/C++語言編寫,可以運行在Linux、Windows、Mac等操作系統(tǒng)上,能夠快速的實現(xiàn)一些圖像處理和識別的任務。此外,OpenCV還提供了java、python、cuda等的使用接口、機器學習的基礎算法調用,從而使得圖像處理和圖像分析變得更加易于上手,讓開發(fā)人員更多的精力花在算法的設計上。2.2OpenCV視覺庫計算機視覺
OpenCV的應用領域OpenCV是一個用于圖像處理、分析、機器視覺方面的開源函數(shù)庫,該庫也包含了比較常用的一些機器學習算法?;蛟S,很多人知道圖像識別、機器視覺在安防領域有所應用。但很少有人知道,在航拍圖片、街道圖片(例如googlestreetview)中,要嚴重依賴于機器視覺的攝像頭標定、圖像融合等技術。近年來,在入侵檢測、特定目標跟蹤、目標檢測、人臉檢測、人臉識別、人臉跟蹤等領域,OpenCV可謂大顯身手,而這些,僅僅是其應用的冰山一角。如今,來自世界各地的各大公司、科研機構的研究人員,共同維護支持著OpenCV的開源庫開發(fā)。這些公司和機構包括:微軟,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ù)需要和習慣來選擇合適的python版本。環(huán)境名字可以自己命名,但是盡量寫自己能看懂的...這里已經創(chuàng)建了一個叫opencv-python的環(huán)境,為了演示,這里創(chuàng)建一個叫Pytorch_envs的環(huán)境。然后會自動開始下載一些相關包。計算機視覺
之后,打開anacondaprompt。先激活環(huán)境:activateopenCV(這里打開的是已經創(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是機器學習庫,包含一些基于統(tǒng)計的分類和聚類工具。HighGUI包含圖像和視頻輸入/輸出的函數(shù)。CXCore包含OpenCV的一些基本數(shù)據(jù)結構和相關函數(shù)。計算機視覺
計算機視覺
OpenCV圖像基本操作1.圖像的讀、寫、顯示(1)圖像讀取cv2.imread(文件名,顯示控制參數(shù)),第一個參數(shù)是圖像文件名,第二個參數(shù)是要告訴函數(shù)應該如何讀取這幅圖像。cv2.IMREAD_COLOR:讀入一副彩色圖像,圖像的透明度會被忽略,這是默認參數(shù)。cv2.IMREAD_GRAYSCALE:以灰度模式讀入圖像。(2)圖像顯示dWindow(窗口名),創(chuàng)建指定名稱的窗口。cv2.imshow(窗口名,圖像名),在指定的窗口顯示圖像。cv2.destroyWindow(窗口名),刪除指定窗口。cv2.destroyAllWindow(),刪除所有窗口。cv2.waitKey([delay]),鍵盤綁定函數(shù),當decay>0時,等待delay毫秒;當decay<0時,等待鍵盤單擊;當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)未經通道變換(b)經過通道變換計算機視覺
(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)圖像的平移平移對應的齊次坐標矩陣表示形式為:以圖像沿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)圖像的縮放對應的齊次坐標矩陣表示形式為:圖像的擴大與縮小有專門函數(shù),cv2.resize()在函數(shù)cv2.resize()中,有幾種不同的插值(interpolation)方法可供選擇,在縮小時推薦cv2.INTER_ARER方法,擴大時推薦cv2.INTER_CUBIC和cv2.INTER_LINEAR方法,默認情況下采用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)圖像的旋轉對應的齊次坐標矩陣表示形式為:cv2.getRotationMatrix2D(),用來獲得旋轉變換矩陣。這個函數(shù)需要三個參數(shù),旋轉中心,旋轉角度,旋轉后圖像的縮放比例。以圖像旋轉45度為例,實現(xiàn)程序如下:#圖像旋轉importcv2importnumpyasnpimportmatplotlib.pyplotaspltimg=cv2.imread('D:/opencv/flower.jpg')rows,cols=img.shape[:2]#獲得旋轉變換矩陣M,參數(shù)一是旋轉中心,參數(shù)二旋轉角度,參數(shù)三縮放比例M=cv2.getRotationMatrix2D((cols/2,rows/2),45,1)#獲得M后,調用cv2.warpAffine函數(shù)得到旋轉后的圖像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)圖像的翻轉垂直(以X軸為對稱軸)翻轉對應的齊次坐標矩陣表示形式為OpenCV中提供了函數(shù)cv2.flip(src,flipCode)來實現(xiàn)圖像的翻轉,scr為原圖像,flipCode為翻轉代碼:flipCode=0,以X軸為對稱軸翻轉;flipCode>0,以Y軸為對稱軸翻轉;flipCode<0,同時沿X、Y軸翻轉。水平、垂直、水平垂直翻轉示例#圖像翻轉importcv2importnumpyasnpfrommatplotlibimportpyplotaspltimage=cv2.imread('D:/opencv/flower.jpg')#FlippedHorizontally水平翻轉h_flip=cv2.flip(image,1)#FlippedVertically垂直翻轉v_flip=cv2.flip(image,0)#FlippedHorizontally&Vertically水平垂直翻轉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')#調整子圖間距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)圖像的仿射圖像旋轉加上拉伸形成圖像仿射變換。仿射變換需要確定變換矩陣MOpenCV提供一種根據(jù)變換前后三個點(左上角,左下角,右上角)的對應關系來自動求解變換矩陣M的函數(shù),M=cv2.getAffineTransform(pos1,pos2),參數(shù)pos1和pos2分別為變換前后三個點的位置。得到M后,使用函數(shù)cv2.warpAffine()即可進行仿射變換。width=imgInfo[1]mode=imgInfo[2]#原圖中的三個點matSrc=np.float32([[0,0],[0,height-1],[width-1,0]])#對應的變換后的三個點matDst=np.float32([[50,50],[100,height-50],[width-200,100]])#獲得仿射變換矩陣M=cv.getAffineTransform(matSrc,matDst)#得到變換后的圖像dst=cv.warpAffine(img,M,(height,width))cv.imshow('image',dst)cv.waitKey(0)
#圖像仿射變換importcv2ascvimportnumpyasnpimg=cv.imread("D:/opencv/flower.jpg")imgInfo=img.shapeheight=imgInfo[0]計算機視覺
3.圖像顏色變換(1)圖像通道拆分與合并常見的彩色圖像有R、G、B三個通道,OpenCV中提供函數(shù)cv2.split()將彩色圖像拆分為R、G、B三個通道,相應地,提供cv2.merge()函數(shù),實現(xiàn)三通道的合并。#圖像通道拆分importnumpyasnpimportcv2ascvfrommatplotlibimportpyplotaspltimg=cv.imread("D:/opencv/flower.jpg")b,g,r=cv.split(img)dWindow("Image")cv.imshow('ChannelB',b)cv.imshow('ChannelG',g)cv.imshow('ChannelR',r)cv.waitKey(0)cv.destroyAllWindows()R通道圖像G通道圖像
B通道圖像計算機視覺
(2)圖像的反轉圖像反轉特別適用于增強嵌入圖像暗色區(qū)域中的白色或灰色細節(jié),灰度值范圍在[0,L-1]的圖像,其反轉圖像可由公式s=L-1-r獲得,其中,r為原圖像像素灰度值,s為反轉后的像素灰度值。計算機視覺
第3章圖像預處理3目錄計算機視覺
3.13.23.3空域濾波頻域濾波直方圖修正計算機視覺
圖像預處理方法:直方圖修正,空域濾波和頻域濾波圖像預處理的主要目的:是消除圖像中的無關信息,恢復有用的、真實的信息,可以提高特征抽取、圖像分割、匹配和識別的可靠性。計算機視覺
3.1直方圖直方圖是一個二維坐標系,橫軸表示整幅圖像上灰度值的變化范圍,縱軸表示每個灰度值的統(tǒng)計個數(shù)。直方圖能夠反映灰度圖像的灰度分布特征。原始圖像直方圖計算機視覺
灰度直方圖定義:nk:灰度值等于rk的像素數(shù)量(計數(shù)值)rh(r)計算機視覺
直方圖的性質直方圖描述了每個灰度級具有的像素的個數(shù),但它不能為這些像素在圖像中的空間位置提供任何線索。因此,任何一幅特定的圖像具有唯一的直方圖,但反之并不成立。極不相同的圖像可以有相同的直方圖。例如,在圖像中移動物體一般對直方圖沒有影響。直方圖的性質總結如下。不同圖像具有相同直方圖計算機視覺
3.1.1直方均衡化許多圖像的灰度值是非均勻分布的,其中灰度值集中在一個小區(qū)間內的圖像是很常見的.直方圖均衡化是一種通過重新均勻地分布各灰度值來增強圖像對比度的方法.一般來說,直方圖修正能提高圖像的主觀質量,因此在處理藝術圖像時非常有用.計算機視覺
3.1.2均衡化實現(xiàn)流程:
計算機視覺
例:一幅大小為64×64的灰度圖像有8個灰度級(L=8),所示為該圖像的灰度分布信息,對該圖像進行直方圖均衡化處理原圖像灰度級k像素數(shù)量nkk=0790k=11023k=2850k=3656k=4329k=5245k=6122k=781圖像灰度級k歸一化灰度級rk像素數(shù)量nkk=0r0=0
7900.190.19k=1r1=1/710230.250.44k=2r2=2/78500.210.65k=3r3=3/76560.160.81k=4r4=4/73290.080.89k=5r5=5/72450.060.95k=6r6=6/71220.030.98k=7r7=1810.021表3-1表3-2計算機視覺
計算機視覺
直方圖均衡化的優(yōu)缺點:
直方圖均衡化方法對于背景和前景都太亮或者太暗的圖像非常有用,尤其是可以改善X光圖像中由于曝光過度或曝光不足而導致的骨骼結構顯示不清晰的情況,該方法的主要優(yōu)勢就是它是一個相當直觀的技術且是可逆操作。
該方法的缺點是,對處理的數(shù)據(jù)不加選擇,這樣可能會增加背景無用信息的對比度,并且降低有用信息的對比度;變換后圖像的灰度級減少,導致某些細節(jié)消失。計算機視覺
3.1.3直方規(guī)定化
直方圖均衡化實現(xiàn)了圖像灰度的均衡分布,對提高整幅圖像的對比度有明顯作用。但是,在實際應用中,有時候需要對某些特定的灰度區(qū)間進行增強。這時,可以使用直方圖規(guī)定化的方法,按需要靈活地對直方圖的分布進行調整。
直方圖規(guī)定化,也叫做直方圖匹配,用于將圖像變換為某一特定的灰度分布。因此,規(guī)定化操作可以有目的的增強某個灰度區(qū)間。在執(zhí)行規(guī)定化操作時,首先要知道變換后的灰度直方圖,這樣才能確定變換函數(shù)。計算機視覺
(1)計算原圖像和規(guī)定化圖像中各灰度級概率分布和;(2)計算原直方圖和規(guī)定化直方圖的累積率分布sk和vk;(3)對于原圖像中的灰度級i,計算|si-vj|,使得|si-vj|最小時j的取值,即為i在規(guī)定化直方圖中對應的灰度級,由此確定映射關系為i→j;直方圖規(guī)定化的實現(xiàn)步驟:計算機視覺
(b)規(guī)定化直方圖(a)原始圖像直方圖序號步驟灰度分布1圖像灰度級k012345672原圖像各灰度級像素nk7901023850656329245122813原直方圖p(nk)0.190.250.210.160.080.060.030.024原直方圖累積概率sk0.190.440.650.810.890.950.9815規(guī)定化直方圖p(zk)0000.150.20.30.20.156規(guī)定化直方圖累積概率vk0000.150.350.650.851序號步驟灰度分布1原圖像灰度級k012345672原直方圖累積概率sk0.190.440.650.810.890.950.9813規(guī)定化直方圖累積vk0000.150.350.650.8514345667775確定映射關系6變換后的直方圖0000.190.250.210.240.11原始圖像灰度分布信息和規(guī)定化信息確定規(guī)定化的映射關系(c)規(guī)定化變換后的直方圖計算機視覺
直方規(guī)定化的特點:直方圖規(guī)定化就是修改一幅圖像的直方圖,使得其概率分布逼近目標直方圖的概率分布。當需要具有特定直方圖的圖像時,可按照預先設定的某個形狀人為的調整圖像的直方圖。使用直方圖規(guī)定化的方法,需先根據(jù)經驗知識,計算最合適的規(guī)定直方圖,與原始圖像一起作為輸入,輸出為規(guī)定化之后的圖像,從而達到特定的圖像增強效果。直方圖均衡化與直方圖規(guī)定化對比直方圖均衡化:自動增強;效果不易控制;得到的是全局增強的結果。直方圖規(guī)定化:有選擇地增強;須給定需要的直方圖;可得到局部增強的結果。計算機視覺
3.2空間域濾波圖像濾波,即在盡量保留圖像細節(jié)特征的條件下對目標圖像的噪聲進行抑制,是圖像預處理中不可缺少的操作;如低通濾波器會濾除信號中的高頻成分,從而達到去噪的效果。濾波方法:空間域法和頻率域法.空間域方法主要是在空間域內對圖像像素直接運算處理。頻率域方法就是在圖像的某種變換域,對圖像的變換值進行運算,如先對圖像進行付立葉變換,再對圖像的頻譜進行某種計算(如濾波等),最后將計算后的圖像逆變換到空間域。計算機視覺
其中,M是鄰域N內的像素點總數(shù)。在像素點[i,j]處取3X3鄰域,得:(1)均值濾波器每一個像素值用其局部鄰域內所有值的均值置換3.2.1空間平滑域濾波計算機視覺
均值濾波器的實現(xiàn):進行卷積模板的等權值卷積運算實現(xiàn)。計算機視覺
903X3窗口7X7窗口鄰域N的大小控制著濾波程度,對應大卷積模板的大尺度鄰域會加大濾波程度.作為去除大噪聲的代價,大尺度濾波器也會導致圖像細節(jié)的損失.計算機視覺
(2)高斯平滑濾波高斯濾波器是一類根據(jù)高斯函數(shù)的形狀來選擇權值的線性平滑濾波器.高斯平滑濾波器對去除服從正態(tài)分布的噪聲是很有效的.
一維零均值高斯函數(shù)為:
其中,高斯分布參數(shù)σ決定了高斯濾波器的寬度.計算機視覺
高斯濾波器可認為是一種線性加權的均值濾波器。高斯濾波模板處于掩膜中心位置的像素權值較大,距離掩膜中心較遠的像素權值較小,這是為了減小平滑處理中的模糊現(xiàn)象。需要注意的是,該掩膜所有系數(shù)的和為16,那么掩膜中心位置的濾波響應可表示為:計算機視覺
#對高斯噪聲圖像進行高斯平滑濾波,模板大小為3*3,σ=3img_Gaussian_blur=cv.GaussianBlur(img_Gaussian_noise,(3,3),sigmaX=3)#openCv高斯模糊函數(shù)show(np.hstack([img_Gaussian_noise,img_Gaussian_blur]))原圖、添加了高斯噪聲的圖像、3×3高斯模板處理后的圖像、7×7高斯模板處理后的圖像計算機視覺
均值濾波和高斯濾波運算的主要問題:有可能模糊圖像中的尖銳不連續(xù)部分.按亮度值大小排列像素點選排序像素的中間值作為點的新值。中值濾波器:中值濾波器的基本思想是用像素點鄰域灰度值的中值來代替該像素點的灰度值,該方法在去除脈沖噪聲、椒鹽噪聲的同時又能保留圖像邊緣細節(jié),這是因為它不依賴于鄰域內那些與典型值差別很大的值。例如,取函數(shù)窗,計算以點為中心的函數(shù)窗像素中值步驟如下:(3)中值濾波器計算機視覺
計算機視覺
#對椒鹽噪聲圖像進行中值濾波,模板大小為3×3img_median_blur=cv.medianBlur(img_salt_pepper_noise,3)#openCv中值模糊函數(shù)show(np.hstack([img_salt_pepper_noise,img_median_blur]))左圖為原圖,中間為添加椒鹽噪聲的圖像,右圖為3×3模板中值濾波后的圖像計算機視覺
3.2.2空域銳化濾波與平滑濾波器的作用相反,圖像銳化的目的是突出圖像中的細節(jié).抑制圖像中灰度平坦區(qū)域。如果說平滑濾波是一種低通濾波器的話,銳化濾波則屬于高通濾波器。(1)基于一階微分的圖像銳化近似一階微分圖像梯度算子Roberts算子Prewitt算子Sobel算子計算機視覺
Roberts算子計算機視覺
Prewitt算子檢測豎直邊緣檢測水平邊緣Prewitt算子,近似一階微分卷積模版:去噪+增強邊緣
Gx=(z7+z8+z9)-(z1+z2+z3)Gy=(z3+z6+z9)-(z1+z4+z7)梯度值:
|f||Gx|+|Gy|計算機視覺
Sobel算子Sobel算子,近似一階微分去噪+增強邊緣,給四鄰域更大的權重Sobel算子對于象素的位置的影響做了加權,因此效果更好。Gx-220-110-110000-1-1-2112Gyz2z8z5z3z9z6z1z7z4Sobel算子為:
Gx=(z7+2z8+z9)-(z1+2z2+z3)Gy=(z3+2z6+z9)-(z1+2z4+z7)梯度值:|f||Gx|+|Gy|計算機視覺
Sobel例子#Sobel算子銳化importnumpyasnpimportmatplotlib.pyplotaspltimportcv2ascv#定義sobel算子defsobel(img):h,w=img.shapenew_img=np.zeros([h,w])x_img=np.zeros(img.shape)y_img=np.zeros(img.shape)sobel_y=np.array([[-1,-2,-1],[0,0,0],[1,2,1]])sobel_x=np.array([[-1,0,1],[-2,0,2],[-1,0,1]])foriinrange(h-2):forjinrange(w-2):x_img[i+1,j+1]=abs(np.sum(img[i:i+3,j:j+3]*sobel_x))y_img[i+1,j+1]=abs(np.sum(img[i:i+3,j:j+3]*sobel_y))new_img[i+1,j+1]=np.sqrt(np.square(x_img[i+1,j+1])+np.square(y_img[i+1,j+1]))returnnp.uint8(new_img)
img=cv.imread('lenna.png',0)img_sobel=sobel(img)show(np.hstack([img,img_sobel]))計算機視覺
在數(shù)字圖像上計算二階微分拉普拉斯算子0-10-14-10-10-1-1-1-18-1-1-1-1(2)基于二階微分的圖像銳化90度旋轉各向同性的濾波45度各向同性的濾波因為數(shù)字圖像是離散形式,則有:拉普拉斯算子的數(shù)字近似3*3卷積模版計算機視覺
#Laplace算子銳化importnumpyasnpimportmatplotlib.pyplotaspltimportcv2ascv#定義Laplace算子defLaplace_op(img,n):#n表示采用n鄰域Laplace算子h,w=img.shapenew_image=np.zeros((h,w))ifn==4:filter=np.array([[0,1,0],[1,-4,1],[0,1,0]])elifn==8:filter=np.array([[1,1,1],[1,-8,1],[1,1,1]])foriinrange(h-2):forjinrange(w-2):new_image[i+1,j+1]=abs(np.sum(img[i:i+3,j:j+3]*filter))returnnp.uint8(new_image)
img=cv.imread('lenna.png',0)lap4_image=Laplace_op(img,4)lap8_image=Laplace_op(img,8)show(np.hstack([img,lap4_image,lap8_image]))計算機視覺
拉普拉斯算子的特點拉普拉斯算子的運算結果是標量只有幅值,只使用一個模版便可計算得到方向屬性丟失實際中幾乎不單獨使用拉普拉斯算子:二次求導數(shù),對噪聲非常敏感通常配合濾波器同時使用計算機視覺
LaplacianofGaussian(LoG)首先用Gauss函數(shù)對圖像進行平滑,抑制噪聲然后對經過平滑的圖像使用Laplacian算子利用卷積的性質LoG算子等效于:
Gaussian平滑+Laplacian二階微分計算機視覺
二維邊緣微分濾波器LoG算子:高斯拉普拉斯高斯高斯的導數(shù)計算機視覺
計算機視覺
Canny邊緣檢測器J.Canny,“AComputationalApproachtoEdgeDetection”,IEEETrans.onPAMI,8(6),1986.CSDivision,UniversityofCalifornia,BerkeleyBID:TheBerkeleyInstituteofDesignJohnCannyCanny的目標是找到一個最優(yōu)的邊緣檢測算法,最優(yōu)邊緣檢測的含義是:好的檢測(Gooddetection)
-算法能夠盡可能多地標識出圖像中的實際邊緣。好的定位(Goodlocalization)-標識出的邊緣要盡可能與實際圖像中的實際邊緣盡可能接近。低的錯誤檢測率(Lowfalsepositives)
-圖像中的邊緣只能標識一次,并且可能存在的圖像噪聲不應標識為邊緣。計算機視覺
Canny邊緣檢測算法算法基本過程:計算圖像梯度梯度非極大值抑制雙閾值提取邊緣點幅值大小M(x,y)方向Theta(x,y)NMS:Non-MaximaSuppression計算機視覺
Canny邊緣檢測算子主要包括以下幾個步驟:①高斯平滑濾波,采用高斯平滑濾波對原圖像進行降噪處理。②計算梯度幅值和方向:③非極大值抑制,沿梯度方向,對梯度幅值進行非極大值抑制。④雙閾值邊緣篩選,設置兩個閾值,分別為低閾值和高閾值。計算機視覺
計算圖像梯度:高斯函數(shù)的一階導數(shù)-11-11(2)使用一階有限差分計算偏導數(shù)的兩個陣列:(1)求圖像與高斯平滑濾波器卷積:11-1-1相當于與模版進行卷積運算:代表對圖像的平滑程度計算機視覺
計算圖像梯度:高斯函數(shù)的一階導數(shù)(3)幅值和方位角:M代表梯度幅值的大小,在存在邊緣的圖像位置處,M的值變大,圖像的邊緣特征被“增強”計算機視覺
非極大值抑制NMS非極大值抑制(NMS:Non-MaximaSuppression)主要思想:由梯度幅值圖像M(x,y),僅保留極大值。(嚴格地說,保留梯度方向上的極大值點。)得到的結果為N(x,y),具體過程:初始化N(x,y)=M(x,y)對于每個點,在梯度方向和反梯度方向各找n個像素點。若M(x,y)不是這些點中的最大點,則將N(x,y)置零,否則保持N(x,y)不變。計算機視覺
非極大值抑制NMS
在梯度方向的沿線上檢測該點是否為局部極大值簡化的情形,只使用4個方向:{0,45,90,135}
得到的結果N(x,y)包含邊緣的寬度為1個像素計算機視覺
對NMS結果進行二值化對上述得到的N(x,y)使用閾值進行二值化使用大的閾值,得到:少量的邊緣點許多空隙使用小的閾值,得到:大量的邊緣點大量的錯誤檢測計算機視覺
使用雙閾值檢測邊緣兩個閾值T1,T2:T2>>T1由T1得到E1(x,y),低閾值邊緣圖:更大的誤檢測率由T2得到E2(x,y),高閾值邊緣圖:更加可靠邊緣連接:E1E1E1E1E2E2E2計算機視覺
邊緣連接將E2(x,y)中相連的邊緣點輸出為一幅邊緣圖像E(x,y)對于E(x,y)中每條邊,從端點出發(fā)在E1(x,y)中尋找其延長的部分,直至與E(x,y)中另外一條邊的端點相連,否則認為E1(x,y)中沒有它延長的部分將E(x,y)作為結果輸出E1E1E1E1E2E2E2計算機視覺
Canny算子:流程原始圖像原始圖像經過Gauss平滑計算機視覺
Canny算子:流程梯度幅值圖像梯度幅值經過非極大值抑制計算機視覺
Canny算子:流程低閾值邊緣圖像高閾值邊緣圖像Canny輸出邊緣圖像計算機視覺
使用Canny算子需要注意的問題Canny算子的優(yōu)點:參數(shù)較少計算效率得到的邊緣連續(xù)完整參數(shù)的選擇:Gauss濾波的尺度雙閾值的選擇(LOW=HIGH*0.4)計算機視覺
漸增高斯濾波模版的尺寸計算機視覺
漸增雙閾值的大小,保持low=high*0.4計算機視覺
3.3頻域濾波3.3.1離散傅里葉變換一維連續(xù)函數(shù)f(x)的傅里葉變換可記為F(u),f(x)和F(u)被稱為一個傅里葉變換對,記為:離散離散傅里葉變換
u=0時,u=1時,傅里葉變換的每一項是由的所有值(x=0,1,2,...,M-1)的和組成的。DFT變換逆變換獲得原函數(shù)f(x):計算機視覺
二維DFT可表示為:逆DFT變換公式為:x和y為空間域變量,u和v為頻率域變量。計算機視覺
傅里葉變換具有平移性和對稱性,這對于其在圖像處理中的應用非常重要平移性:圖像f(x,y)在空域與指數(shù)函數(shù)相乘對應于F(u,v)在頻域的移位當時則有:計算機視覺
對稱性該性質可簡化頻域濾波器的設計復雜度計算機視覺
3.3.2頻域濾波步驟(1)將原始圖像f(x,y)乘以(-1)x+y;(2)對進行DFT,將圖像變換至頻率域,得到F(u,v);(3)構建頻域濾波器H(u,v),并與F(u,v)相乘,完成濾波,得到G(u,v);(4)將G(u,v)進行逆DFT變換,得到濾波后的圖像;(5)將濾波后圖像乘以(-1)x+y以消除在步驟(1)中對圖像的處理,得到最終圖像。計算機視覺
3.3.3頻域平滑濾波器傅里葉變換后,低頻成分對應圖像中灰度變化平緩區(qū)域,高頻成分對應圖像中灰度尖銳變換部分,如邊緣和噪聲。頻域平滑濾波器可通過抑制圖像傅里葉變換中的高頻部分、保留低頻部分來實現(xiàn),因此,平滑濾波器也稱為低通濾波器。頻域濾波公式:F(u,v)為待濾波圖像的傅里葉變換,H(u,v)為要構建的濾波器,G(u,v)表示濾波結果。計算機視覺
(1)理想低通濾波器D(u,v)為點(u,v)到濾波器中心的距離,D0是一個給定的非負數(shù),也稱為截止頻率。(a)原圖及其頻譜圖(b)濾波器(D0=30)及其及濾波后圖像(c)濾波器(D0=50)及其及濾波后圖像計算機視覺
(2)巴特沃斯低通濾波器n階巴特沃斯低通濾波器可表示為:D(u,v)為點(u,v)到濾波器中心的距離,D0是截止頻率,n是巴特沃斯低通濾波器的階數(shù)。巴特沃斯低通濾波(n=2,D0=30)計算機視覺
(3)高斯低通濾波器高斯低通濾波器的二維表示形式為:D(u,v)為點(u,v)到濾波器中心的距離,D0是截止頻率。高斯低通濾波(D0=30)計算機視覺
3.3.4頻域銳化濾波器與平滑濾波器相對,銳化濾波器保留圖像頻率域的高頻成分,也稱為高通濾波器。(1)理想高通濾波器理想高通濾波器(IHPF)的定義如下:理想高通濾波(D0=30)計算機視覺
(2)巴特沃斯高通濾波器n階巴特沃斯高通濾波器可用表示為:巴特沃斯高通濾波(n=2,D0=30)第4章特征提取4目錄4.1HOG特征4.24.3SIFT特征哈希特征4.1HOG特征HOG即方向梯度直方圖(HistogramofOrientedGradient),HOG特征是一種在計算機視覺和圖像處理中用于物體檢測的特征描述子,即用圖像梯度信息來識別物體。它通過對圖像的每個單元進行梯度方向直方圖計算來構成特征向量。HOG特征結合SVM分類器已被廣泛應用于圖像識別中,思路就是用提取出的HOG特征訓練分類器。其優(yōu)點是對于目標相同但大小、方向不同的圖像,可以利用相同的HOG特征模式來檢測,而不管目標的位置和呈現(xiàn)方式。HOG特征在行人檢測應用中獲得了極大的成功,由于HOG是在圖像的局部方格單元上操作,所以它對圖像的幾何和光學形變都能保持很好的不變性,只要行人大體上能夠保持直立的姿勢,可以容許行人有一些細微的肢體動作,這些細微的動作可以被忽略而不影響檢測效果。HOG特征提取步驟
步驟4:將圖像劃分成若干個單元cells,例如每個cell為8x8像素。步驟5:統(tǒng)計每個cell的梯度直方圖,即可形成每個cell的描述子。假設采用9個bin的直方圖來統(tǒng)計這8*8個像素的梯度信息,其中,9個bin的向量代表的是角度0,20,40,60.....160(不考慮方向的正負)。也就是將cell的梯度方向0-360度分成9個方向塊需要注意的是,如果有一個角度在160-180度之間,這里不考慮方向的正負,角度0和180度可用同一個bin表示,角度為165度,梯度值為85,要把梯度值按照比例放到0和160的bin里面去。把這8*8的cell里所有像素點的梯度值分別累加到9個bin里面去,就構建了一個9-bin的直方圖步驟6:將幾個cell組成一個block(例如3x3個cell/block),一個block內所有cell的特征描述子串聯(lián)起來便得到該block的HOG特征描述子。計算block的時候,是把整張圖像遍歷一遍的過程,窗口移動步長可以設定為1個cell。步驟7:將圖像內所有block的HOG特征描述子串聯(lián)起來就可以得到該圖像的HOG特征描述子,這個就是最終可供分類使用的特征向量。例子:64x128的圖像而言,每8x8個像素組成一個cell,每2x2個cell組成一個block,總共有多少個特征?因為每個cell有9個特征,所以每個塊內有4x9=36個特征,以1個cell為步長,那么,水平方向將有7個掃描窗口,垂直方向將有15個掃描窗口。也就是說,64x128的圖像,總共有36x7x15=3780個特征。4.2SIFT特征SIFT(ScaleInvariantFeatureTransform)即尺度不變特征變換,是一種基于尺度空間的、對圖像縮放、旋轉甚至仿射變換保持不變性的圖像局部特征描述算子。SIFT算子最早由D.G.Lowe于1999年提出,并于2004年完善。SIFT算法具有以下優(yōu)點:(1)SIFT特征是圖像局部特征,基于物體上的一些局部外觀的興趣點而與圖像的大小和旋轉無關,對于光線、噪聲、視角改變的容忍度相當高。(2)獨特性,SIFT特征高度顯著而且相對容易提取,適用于在海量特征數(shù)據(jù)中進行快速、準確的匹配。使用SIFT特征描述對于部分物體遮擋的檢測率也相當高。(3)多量性,即使是很少幾個物體也可以產生大量的SIFT特征。(4)高速性,經優(yōu)化的SIFT匹配算法甚至可以達到實時性。(5)可擴展性,可以很方便地與其他形式的特征向量進行聯(lián)合。SIFT算法實現(xiàn)SIFT算法的實質是在不同的尺度空間上查找關鍵點(特征點),并計算出關鍵點的方向。算法主要包括以下幾個步驟:步驟1:尺度空間的極值檢測,搜索所有尺度空間上的圖像,通過高斯微分函數(shù)來識別潛在的對尺度不變的興趣點。步驟2:特征點定位,在每個候選位置上,通過擬合模型來確定位置尺度,關鍵點的選取依據(jù)它們的穩(wěn)定程度。步驟3:特征方向賦值,基于圖像局部梯度方向,分配給每個關鍵點位置一個或多個方向,后續(xù)的所有操作都是對于關鍵點的方向、尺度和位置進行變換,從而提供這些特征的不變性。步驟4:特征點描述,在每個特征點的鄰域內,在選定的尺度上測量圖像的局部梯度,這些梯度被變換成一種表示,這種表示允許比較大的局部形狀的形變和光照變換。1DoG尺度空間構造
(1)尺度左邊為sigma=1尺度下的圖像,中間為sigma=3尺度下的圖像,右邊為sigma=5的圖像,尺度越大,圖像越模糊圖像金字塔能夠很好的顯示圖像多尺度空間的特征,SIFT算法中的圖像金字塔共有o組,每組有S層,下一組的圖像由上一組圖像降采樣得到。為原圖的1/2.(2)圖像金字塔(3)高斯金字塔構建為了能夠檢測到不同尺度下的特征點,對于一幅圖像I,建立其高斯尺度金字塔。金字塔由若干組(Octave)構成,每組都是“復合”結構,又由若干層(Interval)不同尺度的圖像組成。
前面已經有了高斯金字塔和DoG算子,根據(jù)下圖可以進一步計算高斯差分金字塔。在高斯尺度金字塔中,每組包含6層圖像,經過高斯差分之后每組為5層圖像。(3)高斯差分金字塔圖像差分運算就是對兩個圖像做一個相減的運算,尋找兩幅圖像不一樣的地方。一種非常簡單的圖像特征提取方法,就是用原始圖像減去經過高斯模糊后的圖像,能夠得到特征信息。從信號理論的角度來講,模糊后的圖像保留的是低頻信息,原始圖像減去低頻信息留下高頻信息。
中間的檢測點和它同尺度的8個相鄰點和上下相鄰尺度對應的9×2個點共26個點比較,以確保在尺度空間和二維圖像空間都檢測到極值點。
一個點如果在DoG尺度空間本層以及上下兩層的26個鄰域中是最大值或最小值,就認為該點是圖像在該尺度下的一個特征點。(1)粗略尋找2關鍵點搜索與定位由于DoG值對噪聲和邊緣較敏感,因此,在上面DoG尺度空間中檢測到的局部極值點還需要進一步檢驗才能精確定位為特征點。(2)細化尋找第一步:尋找極值并去除較小的極值對關鍵點進行3D二次函數(shù)擬合,然后求擬合函數(shù)的極值點,作為真正的極值點。
(3)消除邊緣噪聲
(3)消除邊緣噪聲3方向賦值
前面已經獲取了特征關鍵點的位置、尺度和方向參數(shù),這些特征點已經對上述參數(shù)的變化保持了不變性。下一步,就是要生成一種能夠描述這些特征的描述子。
4關鍵點描述子生成(2)旋轉主方向將坐標軸旋轉為關鍵點的方向,以確保旋轉不變性那么旋轉角度后的新坐標為:
(3)生成描述子
16*16鄰域的sift特征點
5SIFT特征匹配兩幅圖中,給出了SIFT特征匹配的實例,可以看出,兩幅圖中,貓耳的方向是不同的,采用SIFT特征可成功匹配。由此可見,SIFT具有旋轉不變性。Hash算法是在工程領域中度量兩張圖像相似度最常用的算法之一。Hash算法通過獲取圖像的Hash值,比較兩張圖像Hash值的漢明(HammingDistance)距離來度量圖像是否相似。兩張圖像越相似,其Hash值的漢明距離越小。Hash算法可分為三種,分別是平均哈希算法(aHash)、感知哈希算法(pHash)和差異哈希算法(dHash)。下面將對這三種算法進行詳細介紹。4.3哈希特征1平均哈希算法(aHash)4.3.1平均哈希算法(aHash)
實例:圖像aHash值的計算過程17110413112612616013999147105119153208153147571519910716217519440159144101124531764355159136112127791375615617515041213771087314520710647116691521341329792581298913620448771011111010011110100111011010100110101011101000110000111000101100計算灰度圖所有像素的均值a=121.33,將上述矩陣中大于或等于a的元素置為1,小于a的元素置為0,可得右圖。將右圖所示矩陣向量化,可得Lena圖的aHash為:1011111010011110100111011010100110101011101000110000111000101100。(5)計算漢明距離:得到aHash值后,就可以比較兩張圖像的aHash值之間的漢明距離,通常認為漢明距離小于10的一組圖像為相似圖像。Lena原圖的aHash值:1011111010011110100111011010100110101011101000110000111000101100
Lena噪聲圖的aHash值:1011111000011110100111011010100110101011101000110000111000101100
Barbara圖的aHash值:1010010100101001011110010111111010100110001100000110010100000110
Lena原圖和噪聲圖aHash值之間的漢明距離:1
Lena原圖和Barbara圖aHash值之間的漢明距離:35(a)Lena原圖(b)加入噪聲的Lena圖(c)Barbara圖感知哈希算法是基于DCT(離散余弦變換)來得到圖片的hash值,其算法步驟為:(1)縮放圖像:將圖像大小統(tǒng)一縮放為32x32共1024個像素點。(2)圖像灰度化:將縮放后的標準圖像轉為灰度圖像。(3)DCT變換:對灰度圖像做離散余弦變換,得到對應的32×32數(shù)據(jù)矩陣。(4)縮小DCT:取上一步32×32數(shù)據(jù)矩陣左上角的8×8子區(qū)域G來替代整幅圖像,這部分呈現(xiàn)了圖片中的最低頻率。(5)計算像素均值:對8×8矩陣G,計算其所有元素的平均值,假設其值為a。(6)計算pHash值:遍歷G中的每個像素,如果第i行j列元素G(i,j)≥a,則置G(i,j)為1,否則,置G(i,j)為0
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 傳媒公司用工合同樣本
- 河道自然清淤施工方案
- 專項財稅合同范例
- 企業(yè)與保姆合同樣本
- 買房送電梯協(xié)議合同樣本
- 停息掛賬律師委托合同樣本
- 農村房屋粉刷合同樣本
- 生產調度的實踐經驗計劃
- 農村借地合同樣本
- 公司變賣解散合同樣本
- 農業(yè)環(huán)境與可持續(xù)發(fā)展試題及答案
- 2025遼寧沈陽地鐵集團有限公司所屬公司招聘11人筆試參考題庫附帶答案詳解
- 2025年合肥熱電集團春季招聘30人筆試參考題庫附帶答案詳解
- 旅行社安全生產培訓
- 電信行業(yè)用戶欠費催收策略與措施
- 銀行資格考試分析與策略試題及答案
- 多式聯(lián)運風險管理與優(yōu)化-全面剖析
- 岳樓小學建立學校年級班級家長四級防控工作聯(lián)系網(wǎng)絡實施方案
- 病人走失應急預案
- 2025年中國鐵塔考試試題及答案
- 廣東省深圳市深圳實驗學校等校聯(lián)考2024-2025學年九年級下學期開學考試語文試題(含答案)
評論
0/150
提交評論