數(shù)字圖像處理與深度學習技術應用全套教學課件_第1頁
數(shù)字圖像處理與深度學習技術應用全套教學課件_第2頁
數(shù)字圖像處理與深度學習技術應用全套教學課件_第3頁
數(shù)字圖像處理與深度學習技術應用全套教學課件_第4頁
數(shù)字圖像處理與深度學習技術應用全套教學課件_第5頁
已閱讀5頁,還剩553頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1.1Python開發(fā)基礎1.2數(shù)字圖像處理與深度學習技術簡介1.3系統(tǒng)界面開發(fā)基礎1.4圖像顯示第1章圖像處理編程基礎第1章基礎第2章彩色圖像特效處理第3章圖像的合成處理第4章圖像的幾何轉(zhuǎn)變第5章圖像的灰度變化第6章圖像平滑處理第7章圖像邊緣銳化處理第8章圖像形態(tài)學處理第9章圖像分割與測量第10章圖像頻域變換處理第11章基于深度學習CNN模型的漢字識別第12章基于深度學習CNN模型的語音識別第13章基于深度學習FasterR-CNN模型的全套可編輯PPT課件1.1Python開發(fā)基礎全套可編輯PPT課件Python的安裝(1)進入Python的官方下載頁面,/downloads/,單擊downloads(2)選擇需要的Python版本。(3)找到要下載的Python版本,單擊安裝。(4)測試Python是否安裝成功。(5)添加環(huán)境變量。PyCharm的安裝.PyCharm的安裝PyCharm是一種十分簡易且有效的Python編輯器。從官網(wǎng)上下載PyCharm的安裝包,使用的是PyCharmCommunity版本。找到下載完成的.exe文件,依次單擊【Next】按鈕、【Install】按鈕、【Finish】按鈕即可完成安裝。PyCharm的初始化2.PyCharm的初始化完成上面的PyCharm軟件安裝后,需要對PyCharm進行一些初始化配置。在PyCharm中安裝常用庫方法1.在PyCharm中安裝常用庫在完成PyCharm的初始化配置后,接下來配置OpenCV及一些常用庫。單擊左上角的【File】菜單,之后單擊【Settings】,打開【Project:pythonProject】欄目,單擊【ProjectInterpreter】,雙擊【pip】,出現(xiàn)OpenCV庫函數(shù)配置界面。選擇【opencv-python】后,單擊左下角的【InstallPackage】按鈕,在PyCharm中安裝常用庫方法2.在命令提示符中安裝常用庫打開命令提示符后,輸入“piplist”即可查看Python中安裝的常用庫。輸入“pipinstall下載的模塊名”然后單擊回車鍵即可安裝。本仿真系統(tǒng)所用模塊對應的安裝命令為:在PyCharm中安裝常用庫pipinstalltkinterpipinstallpillowpipinstallopencv-pythonpipinstallnumpypipinstallmatplotlibpipinstallscipypipinstalleasyguipipinstallpywin32pipinstallscikit-image1.2數(shù)字圖像處理與深度學習技術簡介圖像處理仿真系統(tǒng)圖像處理仿真系統(tǒng)圖像處理仿真系統(tǒng),該仿真系統(tǒng)集成九大模塊:圖像色彩處理、圖像合成、幾何變換、灰度變化、平滑處理、邊緣銳化處理、形態(tài)學處理、分割及測量和變換域處理等內(nèi)容,包含了各類圖像處理算法,涵蓋了數(shù)字圖像處理大部分的基礎知識。仿真系統(tǒng)界面含有Windows窗口、提示語、運行按鈕、以章命名的菜單項、各章對應算法的子菜單項、子菜單項消息映射響應函數(shù)、處理前及處理后的圖像顯示等要素。數(shù)字圖像處理系統(tǒng)數(shù)字圖像處理系統(tǒng)一般數(shù)字圖像處理系統(tǒng)含有圖像處理、圖像分析以及圖像識別理解三個層次。3.深度學習的基礎深度學習引入了端到端學習的概念,即從輸入圖像到識別類別的三個層次在一個模型框架內(nèi)完成。1.3系統(tǒng)界面開發(fā)基礎常用設計圖形界面的模塊常用設計圖形界面的模塊Python有多種用于設計用戶界面的模塊,常用的模塊:

Tkinter:使用Tk平臺,Python系統(tǒng)自帶的標準圖形用戶界面庫;使用Tkinter庫創(chuàng)建窗口界面使用Tkinter庫創(chuàng)建窗口界面(1)導入Tkinter模塊;importtkinter或fromtkinterimport*(2)創(chuàng)建一個頂層容器對象;root=tkinter.Tk()#創(chuàng)建一個窗體對象root.title(‘數(shù)字圖像處理——python’)#設置窗口標題root.geometry(‘750x490+110+50’)#設置窗口大?。?)在頂層容器對象中,添加其他組件;(4)采取調(diào)用pack()方法進行容器的組件布局;(5)進入主事件循環(huán)。root.mainloop()#顯示窗口(消息循環(huán))布局管理布局管理在Tkinter中,布局管理器負責管理組件的位置和大小。、Tkinter提供了三種布局管理器:pack、grid和place。4.組件(1)創(chuàng)建標簽組件label(2)添加按鈕button菜單(1)創(chuàng)建菜單條對象:menubar=Menu(窗體容器)(2)把菜單條放置到窗體中:窗體容器.config(menu=menubar)(3)在菜單條中創(chuàng)建菜單:菜單名稱=Menu(menubar,tearoff=0)(4)為菜單添加文字標簽menubar.add_cascade(label="文字標簽",menu=菜單名稱)(5)在菜單中添加菜單項菜單名稱.add_command(label="菜單項名稱",command=功能函數(shù)名)fileMenu.add_command(label="打開攝像頭",command=open_camera)#在菜單中添加菜單項組件.系統(tǒng)自帶測試圖像的顯示(1)需要導入模塊fromtkinterimport*fromPILimportImageTkfromPILimportImage,ImageEnhance(2)使用Image.open()方法加載一張圖片到內(nèi)存中,并用ImageTk.PhotoImage()方法將其轉(zhuǎn)換成可顯示的圖像對象。img=Image.open("'sucai.jpg")#加載圖片photo=ImageTk.PhotoImage(img)#轉(zhuǎn)換成可顯示的圖像對象```菜單菜單創(chuàng)建菜單的主要步驟如下:(1)創(chuàng)建菜單條對象:menubar=Menu(窗體容器)(2)把菜單條放置到窗體中:窗體容器.config(menu=menubar)(3)在菜單條中創(chuàng)建菜單:菜單名稱=Menu(menubar,tearoff=0)其中,tearoff取值0表示菜單不能獨立使用。菜單(4)為菜單添加文字標簽menubar.add_cascade(label="文字標簽",menu=菜單名稱)(5)在菜單中添加菜單項菜單名稱.add_command(label="菜單項名稱",command=功能函數(shù)名)fileMenu.add_command(label="打開攝像頭",command=open_camera)#在菜單中添加菜單項1.4圖像顯示系統(tǒng)自帶測試圖像的顯示.(1)需要導入模塊fromtkinterimport*fromPILimportImageTkfromPILimportImage,ImageEnhance(2)使用Image.open()方法加載一張圖片到內(nèi)存中,并用ImageTk.PhotoImage()方法將其轉(zhuǎn)換成可顯示的圖像對象。img=Image.open("'sucai.jpg")#加載圖片photo=ImageTk.PhotoImage(img)#轉(zhuǎn)換成可顯示的圖像對象```系統(tǒng)自帶測試圖像的顯示(3)借助tkinter中的Label組件將圖像顯示在界面上root=Tk() #創(chuàng)建窗口對象label=Label(root,image=photo) #創(chuàng)建標簽對象label.pack() #將標簽放置到窗口中root.mainloop() #運行窗口事件循環(huán)用戶打開圖像文件的顯示用戶打開圖像文件的顯示首先通過建立文件菜單,在【打開圖像】子菜單項指定消息響應函數(shù)open_image()menuBar=Menu(root)root.configure(menu=menuBar)fileMenu=Menu(menuBar)menuBar.add_cascade(label="文件",menu=fileMenu)fileMenu.add_command(label="打開圖像",command=open_image)攝像頭拍攝圖像的顯示攝像頭拍攝圖像的顯示首先通過文件菜單,在【打開攝像頭】子菜單項指定消息響應函數(shù)open_camera()menuBar=Menu(root)root.configure(menu=menuBar)fileMenu=Menu(menuBar)menuBar.add_cascade(label="文件",menu=fileMenu)fileMenu.add_command(label="打開攝像頭",command=open_camera)第2章彩色圖像特效處理目錄2.1圖像的顏色表示2.2彩色圖像的灰度化處理2.3彩色圖像的著色處理2.4彩色圖像的亮度調(diào)整2.5彩色圖像的對比度調(diào)整2.6彩色圖像的曝光處理2.7彩色圖像的馬賽克處理2.8彩色圖像的銳化處理2.9彩色圖像的浮雕處理2.10彩色圖像的霓虹處理2.1圖像的顏色表示圖像的顏色表示圖像的顏色表示紅、綠、藍被稱為三原色,簡稱RGB三原色。f(x,y,z)={fred(x,y,z),fgreen(x,y,z),fblue(x,y,z)}其中f表示空間坐標為(x,y,z)位置點的顏色,fred、fgreen、fblue分別表示該位置點的紅、綠、藍三種原色的顏色分量值。圖像的存儲結構圖像的存儲結構圖像由數(shù)字陣列信息組成,用以描述圖像中各像素點的強度與顏色,圖像的存儲結構圖像通常用由采樣點的值所組成的矩陣來表示。每一個采樣單元叫作一個像素(pixel),圖像的存儲結構在計算機內(nèi)通常用二維數(shù)組來表示數(shù)字圖像的矩陣。抽象為數(shù)字矩陣:單色圖像的數(shù)據(jù)示意圖單色圖像圖像的存儲結構8位灰度圖像8位灰度圖像(1)8位灰度圖像的存儲文件帶有圖像顏色表,顏色表共有256項,每一表項均由紅、綠、藍顏色分量值組成,并且紅、綠、藍顏色分量值都相等,即:fred(x,y)=fgreen(x,y)=fblue(x,y)(2)圖像中每一個像素信息是圖像顏色表的索引號。8位偽彩色圖像8位偽彩色圖像(1)圖像顏色表中的紅、綠、藍顏色分量值不全相等,如表2-2所示,即:fred(x,y)≠fgreen(x,y)≠fblue(x,y)(2)圖像中每一個像素信息也是圖像顏色表的索引號。24位真彩色圖像24位真彩色圖像(1)圖像中每一個像素信息由RGB三個分量組成,每個分量各占8位,每個像素需24位。(2)fred(x,y)、fgreen(x,y)、fblue(x,y)取值范圍均為0~255。將紅、綠、藍三種顏色的數(shù)據(jù)分離出來,可以得到三個8位平面數(shù)據(jù)。空間分辨率空間分辨率空間分辨率指圖像數(shù)字化的空間精細程度,說明了數(shù)字圖像的實際精細度??臻g分辨率越高,圖像越逼真?;叶燃壏直媛驶叶燃壏直媛蕯?shù)字圖像的灰度級分辨率表示每一像素的顏色值所占的二進制位數(shù),也叫顏色深度。灰度級分辨率越高,則能表示的顏色數(shù)目越多,圖像越清晰。2.2彩色圖像的灰度化處理函數(shù)說明.函數(shù)說明(1)retval=cv2.imread(filename,flags)用于從指定的文件讀取圖像。(2)cv2.cvtColor()用于實現(xiàn)色彩空間的轉(zhuǎn)換retval=cv2.cvtColor(src,code[,dstCn])(3)cv2.imwrite(filename,img[,params])用于保存圖像。理論基礎理論基礎灰度圖像中顏色的R、G、B分量值相等,只有灰度而沒有彩色。常用的轉(zhuǎn)換方式為:Gray(i,j)=0.11×R(i,j)+0.59×G(i,j)+0.3×B(i,j)轉(zhuǎn)換后:R(i,j)=G(i,j)=B(i,j)=Gray(i,j)2.3彩色圖像的著色處理彩色圖像的著色處理(1)將彩色圖像轉(zhuǎn)換為灰度圖像,使得紅、綠、藍三個分量值相等。(2)通過對話框獲取想要著色的顏色信息。(3)根據(jù)想要著色的顏色信息,分別改變對應的紅、綠、藍三個分量的值,即可得到想要著色的圖像。函數(shù)說明函數(shù)說明OpenCV中,image.shape用于返回圖像對象的高度、寬度和通道數(shù)的屬性說明。其中,image.shape[:2],表示獲取圖像的高度、寬度;image.shape[:3],表示獲取圖像的的高度、寬度和通道數(shù);image.shape[0],表示獲取圖像的垂直尺寸,即高度;image.shape[1],表示獲取圖像的水平尺寸,即寬度;image.shape[2],表示獲取圖像的通道數(shù)。2.4彩色圖像的亮度調(diào)整理論基礎理論基礎亮度的調(diào)整,是指人眼亮度感覺的調(diào)整,可以通過對R、G、B顏色增加(增加亮度)或減少(減少亮度)相同的增量來顯示。亮度的調(diào)整就是給每個分量乘以一個值,這個值由對話框輸入,三個顏色分別乘以這個值后再返回給原來的顏色分量:①當輸入值為1時,圖像保持原來亮度;②當輸入值小于1時,圖像亮度的就減少,圖像就變暗;③當輸入值大于1時,就可以使圖像的亮度增加。函數(shù)說明(1)PythonImagingLibrary,它為Python解釋器提供了圖像編輯函數(shù)。PIL的ImageEnhance模塊包含許多可用于圖像增強的類。其中,ImageEnhance.Brightness()方法用于控制圖像的亮度。用法:obj=ImageEnhance.Brightness(image)retval=obj.enhance(factor)image:輸入的圖像;factor:增強因子,當增強因子輸入為0.0時則給出黑色圖像,輸入為1.0時則給出原始圖像;retval:變換亮度后的圖像。2.5彩色圖像的對比度調(diào)整理論基礎理論基礎增加對比度的意思就是把所感興趣的顏色范圍拉開,使得該范圍內(nèi)的像素,亮的越亮,暗的越暗,從而達到了增強對比度的目的。從對話框獲得調(diào)整的對比度的參數(shù):①當參數(shù)為1時,圖像保持原來亮度;②當參數(shù)小于1時,圖像對比度減弱;③當參數(shù)大于1時,圖像對比度增加。函數(shù)說明(1)ImageEnhance.Contrast()方法是PIL包中提供用于控制圖像的對比度。用法:obj=ImageEnhance.Contrast(image)retval=obj.enhance(factor)image:輸入的圖像;factor:增強因子,增強因子為0.0將產(chǎn)生純灰色圖像,增強因子為1.0是原始圖像,增強因子大于1.0對比度增強,增強因子小于1.0對比度減弱;retval:變換對比度后的圖像。2.6彩色圖像的曝光處理理論基礎曝光圖像的算法原理是逆轉(zhuǎn)數(shù)值小于128的R、G、B三分量。例如,三分量值為(60,210,135)的像素,只是紅色被逆轉(zhuǎn),經(jīng)過轉(zhuǎn)換后為(195,210,135);而對于三分量值為(50,100,70)的像素,各分量均小于128,所以都需要逆轉(zhuǎn),得到(205,155,185)。g(i,j)=255-f(i,j)如果f(i,j)<1282.7彩色圖像的馬賽克處理理論基礎馬賽克效果,其原理是將圖像從形式上劃分為很多小塊,在每塊內(nèi)的各個像素都取到相同的紅、綠、藍顏色分量值,從而對某些細節(jié)進行模糊化處理,使圖像粗糙化。馬賽克處理后,圖像每一小塊矩陣內(nèi)的所有像素值都應該取相同的值2.8彩色圖像的銳化處理理論基礎突出圖像的變化部分,使模糊的圖像變得更加清晰。這里采用的算法原理是先將要處理的圖像像素與它左對角線上的像素之間的像素差值乘上一個銳化度數(shù),然后再加上原先的像素值Red=R+(R-r)/4;Blue=B+(B-b)/4;Green=G+(G-g)/4;R、G、B為當前原像素f(i,j)的紅、綠、藍三個分量值,r、g、b為原像素相鄰像素f(i-1,j-1)的紅、綠、藍三個分量值,2.9彩色圖像的浮雕處理理論基礎浮雕效果就是只將圖像的變化部分突出出來,而相同顏色部分則被淡化,使圖像出現(xiàn)縱深感,從而達到浮雕效果。算法是先計算要處理的像素與其相鄰像素間的像素值之差,將差值作為處理后的像素值。Red=R-r+128;Blue=B-b+128;Green=G-g+128;R、G、B為當前原像素f(i,j)的紅綠藍三個分量值,r、g、b為前一個相鄰像素f(i-1,j)的紅、綠、藍三個分量值2.10彩色圖像的霓虹處理理論基礎先計算原圖像當前像素f(i,j)的紅、綠、藍分量值與其相同行f(i+1,j)及相同列f(i,j+1)相鄰像素的梯度,即差的平方之和的平方根,然后將梯度值作為處理后像素g(i,j)的紅、綠、藍的三個分量值。R1=(r1-r2)2R2=(r1-r3)2G1=(g1-g2)2G2=(g1-g3)2B1=(b1-b2)2B2=(b1-b3)2Red=2×Green=2×Blue=2×r1、g1、b1分別為原像素f(i,j)的紅、綠、藍分量值,r2、g2、b2分別為原像素同行相鄰像素f(i+1,j)的紅、綠、藍分量值,r3、g3、b3分別為原像素同列相鄰像素f(i,j+1)的紅、綠、藍分量值第3章圖像的合成處理目錄3.1圖像的代數(shù)運算3.1.1圖像加運算3.1.2圖像減運算3.2圖像邏輯運算3.1圖像的代數(shù)運算理論基礎代數(shù)運算是指對兩幅輸入圖像進行點對點的加、減、乘、除計算而得到輸出圖像的運算。加運算C(x,y)=A(x,y)+B(x,y)減運算C(x,y)=A(x,y)-B(x,y)乘運算C(x,y)=A(x,y)×B(x,y)除運算C(x,y)=A(x,y)÷B(x,y)3.1.1圖像加運算理論基礎把針對同一目標物在相同條件下,做M次重復攝取的圖像相加,取平均值作為輸出圖像,輸出的平均圖像(x,y)中隨機噪聲的含量,比單幅圖像s(x,y)的隨機噪聲含量削弱S(x,y)=G(x,y)+F(x,y)(3-5)G(x,y)是非相關的、具有零均值的隨機噪聲函數(shù)說明retval=cv2.resize(src,dsize,fx=None,fy=None,interpolation=None)該函數(shù)用于將原始圖像調(diào)整為指定大小。retval:輸出指定大小圖像;src:原始圖像;dsize:輸出圖像的尺寸(元組方式),注意desize的參數(shù)順序是,第一個參數(shù)指定輸出圖像的寬度(列數(shù)),第二個參數(shù)指定輸出圖像的高度(行數(shù));fx:沿水平軸縮放的比例因子;fy:沿垂直軸縮放的比例因子;interpolation:插值方式效果展示圖像通常用由采樣點的值所組成的矩陣來表示。每一個采樣單元叫作一個像素(pixel),3.1.2圖像減運算函數(shù)說明理論基礎圖像相減可用于去除一幅圖像中所不需要的圖案,也可以用于檢測同一場景的兩幅圖像之間的變化。當兩幅圖像進行減運算時,相同位置的背景點因為灰度值相同,結果變成了黑點函數(shù)說明result=cv2.subtract(a,b)該函數(shù)由OpenCV提供用于實現(xiàn)圖像減法運算。result:表示計算的結果;a、b:表示需要進行減法計算的兩個像素值。當使用cv2.subtract()函數(shù)進行圖像減運算時。規(guī)則如下:效果展示3.2圖像邏輯運算理論基礎按位邏輯運算是一種對圖像進行像素級別的邏輯操作的方法。基本運算法則如下:(1)與運算的法則是當兩個值都是1時兩個數(shù)與的結果等于1,其他全為0。(2)或運算的法則是當兩個值都是0時兩個數(shù)或的結果等于0,其他全為1。(3)異或運算的法則是當運算的兩個數(shù)取值不同時,結果為1;相同則為0。(4)非運算的法則是當數(shù)值為0時,結果為1;當數(shù)值為1時,結果為0。位與運算函數(shù)說明在OpenCV中的cv2.bitwise_and()函數(shù)用于進行位與運算,其一般格式為:retval=cv2.bitwise_and(src1,src2[,mask])retval:表示與輸入值具有相同大小的輸出值;src1:表示第一個輸入值;src2:表示第二個輸入值;mask:表示可選操作掩碼。效果展示效果展示通過位與運算提取掩膜圖像中感興趣的區(qū)域,按位邏輯運算可以用于圖像分割,提取感興趣的目標。位或運算函數(shù)說明OpenCV中的cv2.bitwise_or()函數(shù)用于進行位或運算,其一般格式為:retval=cv2.bitwise_or(src1,src2[,mask])retval:表示與輸入值具有相同大小的輸出值;src1:表示第一個輸入值;src2:表示第二個輸入值;mask:表示可選操作掩碼。效果展示兩個圖像進行位或操作,將不同的圖像部分進行組合,可以實現(xiàn)圖像的混合、疊加和融合效果。這在圖像處理、特效制作和圖像合成中常用于創(chuàng)建創(chuàng)意效果和特殊效果。位非運算函數(shù)說明OpenCV中的cv2.bitwise_not()函數(shù)用于按位非運算,其一般格式為:retval=cv2.bitwise_not(src[,mask])retval:表示與輸入值具有相同大小的輸出值;src:表示輸入值;mask:表示可選操作掩碼。效果展示位非運算實際上是對圖像二值化后進行反色變換的結果。位異或運算函數(shù)說明(1)OpenCV中的cv2.bitwise_xor()函數(shù)用于位異或運算,其一般格式為:retval=cv2.bitwise_xor(src1,src2[,mask])retval:表示與輸入值具有相同大小的輸出值;src1:表示第一個輸入值;src2:表示第二個輸入值;mask:表示可選操作掩碼。效果展示使用位異或運算,可以檢測出兩個圖像之間的差異和變化。相同之處為0,即為黑色,不同之處為白色。第4章圖像的幾何變換目錄4.1概述 4.2圖像平移 4.3圖像鏡像 4.4圖像縮放 4.5圖像轉(zhuǎn)置 4.6投影變換 4.7圖像旋轉(zhuǎn) 4.1概述概述圖像幾何變換是改變像素的空間位置,并估算新空間位置上的像素灰度取值,重構圖像的空間結構實現(xiàn)圖像各像素點以坐標原點為中心的比例縮放、反射、旋轉(zhuǎn)等各種變換。變換后的點集矩陣=變換矩陣T×變換前的點集矩陣。幾何變換全部采用統(tǒng)一的矩陣表示法,形式都如下:概述復合變換的矩陣等于基本變換的矩陣按順序依次相乘得到的組合矩陣。若干次基本變換仍可用3×3階表示。

復合比例:復合平移:概述復合旋轉(zhuǎn):4.2圖像平移理論基礎理論基礎圖像平移是將圖像中所有的點都按照指定的平移量水平、垂直移動。當想將原始圖像向右下移動120個像素時,可以計算出M矩陣為:函數(shù)說明(1)retval=np.float32()用于創(chuàng)建單精度浮點型數(shù)組。(2)OpenCV中提供的仿射函數(shù)為cv2.warpAffine(),可以利用變換矩陣M對圖像進行如旋轉(zhuǎn)、仿射、平移等變換。其中,M具體可為:retval=cv2.warpAffine(src,M,dsize[,flags[,borderMode[,borderValue]]])retval:仿射后的輸出圖像,類型與原始圖像相同;src:表示要仿射的原始圖像;M:表示變換矩陣;dsize:表示輸出圖像尺寸的大小,輸入順序(寬,高);flags:表示插入值;borderMode:表示邊類型;borderValue:表示邊界值。效果展示4.3圖像鏡像理論基礎圖像的鏡像變換分為兩種:一種是水平鏡像,另一種是垂直鏡像。圖像的水平鏡像操作以原圖像的垂直中軸線為中心,將圖像分為左右兩部分進行對稱變換;圖像的垂直鏡像操作以原圖像的水平中軸線為中心,將圖像分為上下兩部分進行對稱變換。(1)水平鏡像變換設圖像的寬度為width,則水平鏡像變換的映射關系如下:用矩陣描述為:變換矩陣M為:理論基礎(2)垂直鏡像變換設圖像的高度為height,則垂直鏡像變換的映射關系如下:用矩陣描述為:變換矩陣M為:效果展示4.4圖像縮放理論基礎理論基礎圖像的比例縮放矩陣用齊坐標表示為:(1)kx

>1且ky>1時,原圖像被放大。(2)當kx<1且ky<1時,原圖像被縮小?!瘛瘛瘛瘛裥Ч故?.5圖像轉(zhuǎn)置理論基礎理論基礎圖像的轉(zhuǎn)置操作是將圖像像素的x坐標和y坐標互換。該操作將改變圖像的高度和寬度,轉(zhuǎn)置后圖像的高度和寬度將互換。即效果展示4.6投影變換理論基礎(1)剛體變換如果一幅圖像中的兩點間的距離經(jīng)變換后映射到另一幅圖像中仍然保持不變剛體變換僅局限于平移、旋轉(zhuǎn)和反轉(zhuǎn)(2)仿射變換直線經(jīng)過變換后映射到另一幅圖像上仍為直線,并且保持平行關系仿射變換適應于平移、旋轉(zhuǎn)、縮放和反轉(zhuǎn)(鏡像)等情況。理論基礎(3)投影變換直線經(jīng)過變換后映射到另一幅圖像上仍為直線,但平行關系基本不保持。二維平面上的投影變換具體可用下面的非奇異3×3矩陣形式來描述

則二維投影變換按照式(4-17)將像素坐標點(x,y)映射為像素坐標點。

函數(shù)說明投影變換是在三維空間內(nèi)進行的,如果指定好變換前的4個頂點的坐標,設定其變換后相應的4個頂點的坐標,并設定一個m8的值,通過解方程,就可以求出投影變換矩陣,實現(xiàn)投影變換功能。(1)在OpenCV中提供了cv2.getPerspectiveTransform()函數(shù)來計算投影變換矩陣。retval=cv2.getPerspectiveTransform(src,dst)retval:返回計算得到的變換矩陣;dst:表示在目標圖像上投影得到的四個像素頂點;src:表示原始圖像上指定四個頂點。函數(shù)說明(2)OpenCV提供了cv2.warpPerspective()函數(shù)來實現(xiàn)投影變換功能,其一般格式為:cv2.warpPerspective(src,M,dsize[,dst[,flags[,borderMode[,borderValue]]]])src:表示原始的圖像;M:表示投影變換矩陣;dsize:表示投影后圖像的大??;flags:表示插值方式;borderMode:表示邊界模式;borderValue:表示邊界值。效果展示圖像的投影變換效果如圖4-9所示。左側為原始圖像,右側為處理后的圖像。4.7圖像旋轉(zhuǎn)理論基礎一般圖像的旋轉(zhuǎn)是以圖像的中心為原點,旋轉(zhuǎn)一定的角度。旋轉(zhuǎn)后,圖像的大小一般會改變。在旋轉(zhuǎn)前

旋轉(zhuǎn)后:

理論基礎將坐標系Ⅰ平移到坐標系Ⅱ處,其中坐標系Ⅱ的原點在坐標系Ⅰ中坐標為(a,b)。設圖像的寬度為w,高度為h,得到理論基礎其逆變換矩陣表達式為:按如下方法即可旋轉(zhuǎn)圖像:①根據(jù)公式(4-21),將坐標系Ⅰ變成坐標系Ⅱ;②根據(jù)公式(4-20),將該點順時針旋轉(zhuǎn)α角;③根據(jù)公式(4-22),將坐標系Ⅱ變成坐標系Ⅰ。在新的坐標系下,旋轉(zhuǎn)后新圖像左上角為坐標原點,未旋轉(zhuǎn)時中心坐標為(a,b),旋轉(zhuǎn)后中心坐標為(c,d),則旋轉(zhuǎn)變換矩陣表達式為:

設未旋轉(zhuǎn)時中心坐標為(0,0),則:

函數(shù)說明retval=cv2.getRotationMatrix2D(center,angle,scale)該函數(shù)用于得到仿射變換的轉(zhuǎn)換矩陣。center:旋轉(zhuǎn)的中心點;angle:旋轉(zhuǎn)角度,正數(shù)為順時針旋轉(zhuǎn),負數(shù)為逆時針旋轉(zhuǎn);scale:變換尺度。效果展示圖像的旋轉(zhuǎn)變換效果如圖4-12所示。左側為原始圖像,右側為處理后的圖像。第5章圖像的灰度變換目錄5.1概述5.2二值化和閾值處理5.3灰度線性變換與分段線性變換5.3.1灰度線性變換5.3.2分段線性變換5.4灰度非線性變換5.4.1灰度對數(shù)變換5.4.2灰度指數(shù)變換5.4.3灰度冪次變換5.5灰度直方圖5.5.1灰度直方圖5.5.2直方圖正規(guī)化5.5.3直方圖均衡化5.5.4自適應直方圖均衡化5.1概述概述灰度變換是根據(jù)某種目標條件,按一定變換關系,逐點改變每一個像素灰度值的方法。目的是為了改善畫質(zhì),使圖像的顯示效果更加清晰?;叶茸儞Q可以增大圖像的動態(tài)范圍,擴展圖像的對比度,使圖像特征變得明顯。(1)直接對比度增強方法函數(shù)T(D)稱為灰度變換函數(shù)或概述2)間接對比度增強方法直方圖拉伸和直方圖均衡化是兩種最常見的間接對比度增強方法。直方圖拉伸是通過對比度拉伸對直方圖進行調(diào)整,從而“擴大”前景和背景灰度的差別,以達到增強對比度的目的,這種方法可以利用線性或非線性的方法來實現(xiàn)。直方圖均衡化就是把給定圖像的直方圖分布改變成“均勻”分布直方圖分布,對圖像進行非線性拉伸,重新分配圖像像素值,使一定灰度范圍內(nèi)的像素數(shù)量大致相同。5.2二值化和閾值處理理論基礎二值化處理就是把圖像分成目標物體和背景兩個領域,通過固定閥值、雙固定閥值等不同的閾值化變換方法,使一幅灰度圖變成了黑白二值圖像,將所需的目標部分從復雜的圖像背景中脫離出來。

T為指定的閾值。閾值T就像個門檻,比它大就是白,比它小就是黑。函數(shù)說明(ret,dst=cv2.threshold(src,thresh,maxval,type)ret:表示返回的閾值;dst:表示輸出的圖像;src:表示要進行閾值分割的圖像,可以是多通道的圖像;thresh:表示設定的閾值;maxval:表示type參數(shù)為THRESH_BINARY或THRESH_BINARY_INV類型時所設定的最大值。在顯示二值化圖像時,一般設置為255;type:表示閾值分割的類型。效果展示5.3灰度線性變換與分段線性變換5.3.1灰度線性變換理論基礎灰度的線性變化就是將圖像中所有的點的灰度按照線性灰度變換函數(shù)進行變換。圖5-2灰度的線性變換函數(shù)說明(1)retval=image.max()用于返回圖像最大像素值。(2)retvalimage.min()用于返回圖像最小像素值。效果展示5.3.2分段線性變換理論基礎將圖像灰度區(qū)間分成兩段乃至多段,分別做線性變換稱為分段線性變換。變換后的灰度

圖5-4分段線性變換效果展示5.4灰度非線性變換5.4.1灰度對數(shù)變換理論基礎對數(shù)變換實現(xiàn)了圖像的灰度擴展和壓縮的功能。它擴展低灰度值而壓縮高灰度值,讓圖像的灰度分布更加符合人的視覺特征?;叶葘?shù)變換公式:其中a控制曲線的垂直偏移量;b為常數(shù),描述曲線的彎曲程度。

函數(shù)說明(1)retval=np.log(x)是Numpy中的log()函數(shù),用于計算給定數(shù)組中所有元素的自然對數(shù)。retval:返回的數(shù)組;x:輸入數(shù)據(jù)。(2)retval=np.uint8(params)是Numpy包中用于轉(zhuǎn)換數(shù)據(jù)類型的函數(shù)。retval:返回uint8數(shù)據(jù)類型的圖像;params:輸入數(shù)據(jù)。效果展示5.4.2灰度指數(shù)變換理論基礎指數(shù)變換的作用是擴展圖像的高灰度級,壓縮低灰度級。雖然冪次變換也有這個功能,但是圖像經(jīng)過指數(shù)變換后對比度更高,高灰度級也被擴展到了更寬的范圍

其中參數(shù)b、c控制曲線形狀,參數(shù)a控制曲線的左右位置。指數(shù)變換的曲線如圖5-8所示。圖5-8指數(shù)變換的曲線函數(shù)說明(1)retval=np.zeros(shape,dtype,order)用于創(chuàng)建一個給定形狀和類型的用0填充的數(shù)組。retval:返回一個全0的數(shù)組或矩陣;shape:數(shù)組的形狀(即寬高);dtype:數(shù)據(jù)類型,可選參數(shù);order:可選參數(shù),“C”代表行優(yōu)先,“F”代表列優(yōu)先。(3)retval=cv2.LUT(src,lut,dst=None)的作用是對輸入的src執(zhí)行查找表lut轉(zhuǎn)換。src:輸入數(shù)據(jù)array;lut:查找表,如果輸入src是多通道的,例如是B、G、R三通道的圖像,而查找表是單通道的,則此時B、G、R三個通道使用的是同一個查找表;retval:輸出數(shù)組,大小和通道數(shù)與src相同,深度depth與lut相同

效果展示5.4.3灰度冪次變換理論基礎與對數(shù)變換相同,冪次變換將部分灰度區(qū)域映射到更寬的區(qū)域中。當r=1時,冪次變換為線性變換。冪次變換的基本表達式為:

其中c、r均為正數(shù)。使x與y的取值范圍都在0~255之間:

理論基礎參數(shù)r對曲線的影響

輸出灰度值會隨著指數(shù)r對曲線的影響的增加迅速擴大。當指數(shù)r大時,整個變換曲線近于一條垂直線。會變成最小值,產(chǎn)生的圖像幾乎全黑。效果展示5.5灰度直方圖5.5.1灰度直方圖理論基礎圖像的灰度直方圖表示圖像中具有某種灰度級的像素的個數(shù),反映了圖像中每種灰度出現(xiàn)的頻率。

灰度直方圖性質(zhì):(1)只反映該圖像中不同灰度值出現(xiàn)的次數(shù),而未反映某一灰度值像素所在位置。丟失了位置信息。(2)圖像與灰度直方圖之間是多對一的映射關系。理論基礎(3)一幅圖像各子區(qū)的灰度直方圖之和等于該圖像全圖的灰度直方圖。函數(shù)說明

matplotlib.pyplot.hist(image,BINS)BINS:表示灰度級的分組情況。image:表示原始圖像數(shù)據(jù),必須將其轉(zhuǎn)換為一維數(shù)據(jù)。

效果展示圖5-16灰度直方圖效果圖5.5.2直方圖正規(guī)化理論基礎

,

直方圖正規(guī)化可以調(diào)節(jié)圖像的對比度,使圖像的像素點分布在0~255范圍內(nèi)。函數(shù)說明cv2.normalize(src,dst,alpha,beta,norm_type,dtype)ssrc:輸入數(shù)組,可以是單通道或多通道;dst:輸出數(shù)組;alpha:歸一化后的最小值;beta:歸一化后的最大值;norm_type:用于normalize()的類型,一般令norm_type=NORM_MINMAXdtype:可選的輸出的數(shù)組類型;

效果展示5.5.3直方圖均衡化理論基礎直方圖均衡化就是把給定圖像的直方圖分布改變成“均勻”分布的直方圖分布,對圖像進行非線性拉伸,重新分配圖像像素值,使一定灰度范圍內(nèi)的像素數(shù)量大致相同。把原始圖像通過累積分布函數(shù)轉(zhuǎn)換成新圖像后,每一種顏色的分布數(shù)量應該是一個常數(shù):對于輸入圖像的任意一個像素p,總能在輸出圖像里有對應的像素q使得:

所以:

理論基礎直方圖均衡化步驟:(1)計算原圖像的直方圖(2)計算累積直方圖(3)均衡化像素值(4)創(chuàng)建均衡化后的圖像表5-1直方圖均衡化計算過程函數(shù)說明retval=cv2.equalHist(src)src:表示輸入的待處理圖像。retval:表示直方圖均衡化后的圖像。

效果展示5.5.4自適應直方圖均衡化理論基礎自適應直方圖均衡化方法是以像素為中心,采用一個滑動的窗口,計算其局部直方圖和相應的累積直方圖,并進行灰階變換,從而改變該中心像素值。步驟如下:①采用滑動模板W在圖像上移動,并且模板W的中心對應圖像上的點;②對滑動窗口直方圖進行均衡化處理,實現(xiàn)對窗口中心像素的處理③逐個像素計算,得到整幅圖像的自適應直方圖均衡化圖像。函數(shù)說明retval=cv2.createCLAHE(clipLimit,tileGridSize)retval:生成自適應均衡化后的圖像;clipLimit:顏色對比度的閾值,可選項;tileGridSize:局部直方圖均衡化的模板(鄰域)大小,可選項。

效果展示第6章圖像平滑處理目錄6.1概述6.2噪聲消除法6.2.1二值圖像的黑白點噪聲濾波6.2.2消除孤立黑像素點6.3鄰域平均法6.3.13×3均值濾波6.3.2N×N均值濾波6.3.3超限鄰域平均法6.3.4方框濾波6.4高斯濾波6.5中值濾波6.5.1N×N中值濾波6.5.2十字型中值濾波6.5.3N×N最大值濾波6.6雙邊濾波6.72D卷積核的實現(xiàn)6.8產(chǎn)生噪聲6.8.1隨機噪聲6.8.2椒鹽噪聲6.1概述概述圖像平滑或濾波目的是消除噪聲,降低干擾,改善圖像質(zhì)量。圖像平滑常用的方法是采用區(qū)域處理,利用相鄰的像素值,進行均值濾波或中值濾波。6.2噪聲消除法6.2.1二值圖像的黑白點噪聲濾波理論基礎理論基礎設當前像素f(i,j)周圍的8個像素的平均值為a時,若|f(i,j)-a|的值在127.5以上,則對f(i,j)的黑白進行翻轉(zhuǎn),若不到127.5則f(i,j)不變。函數(shù)說明(1)retval=image.getdata(band=None)將此圖像的內(nèi)容作為一個包含像素值的序列對象返回。該序列對象是平鋪的,所以第一行的值直接跟在第0行的值之后,以此類推。retval:包含像素值的序列的對象;band:返回頻段。默認是返回所有波段。要返回單個波段,需要傳入索引值(例如,從“RGB”圖像中獲得“R”波段,則索引值為0)。(2)retval=image.putpixel(xy,color)用于修改x,y處的像素。retval:返回一個修改后的圖像;xy:像素坐標,以(x,y)的形式給出;value:像素值。效果展示6.2.2消除孤立黑像素點理論基礎像素的4點鄰域和8點鄰域關系如圖6-2連通圖所示。

****

。*.*。*。.。*****4點領域8點領域圖6-2連通圖在4點鄰域的情況下,若黑像素上下左右4個像素全為白色(255),則f(i,j)也取為255。在8點鄰域的情況下,若黑像素的周圍8個像素全為白色(255),則f(i,j)也取為255。效果展示6.3鄰域平均法鄰域平均法是一種利用模板對圖像進行模板操作(卷積運算)的方法(b)5x5模版鄰域平均法也叫均值濾波,是對待處理的像素給定一個模板,該模板包括了其周圍的鄰近像素,用模板中的全體像素的均值來替代原來的像素值。均值濾波器對高斯噪聲的濾波效果較好,對椒鹽噪聲的濾波效果不好。(a)3x3模版6.3鄰域平均法效果展示6.3.13×3均值濾波理論基礎理論基礎在f(i,j)上按行(或列)對每個像素選取3×3尺寸的鄰域,并用鄰域中鄰近像素的平均灰度來置換這一像素值。函數(shù)說明retval=cv2.blur(src,ksize,anchor,borderType)retval:表示返回的均值濾波處理結果;src:表示原始圖像,該圖像不限制通道數(shù)目;ksize:表示濾波卷積核的大小;anchor:表示圖像處理的錨點,其默認值為(-1,-1),表示位于卷積核中心點,通常直接使用默認值即可;borderType:表示以哪種方式處理邊界值,通常直接使用默認值即可。效果展示圖6-8圖像3x3鄰域平均法效果圖6.3.2N×N均值濾波理論基礎在本程序中當灰度圖像f中以像素f(i,j)為中心的N×N屏蔽窗口(N=3,5,7,…)內(nèi)平均灰度值為a時,無條件做f(i,j)=a處理,N由用戶給定,且取N值越大,噪聲減少越明顯。但“平均”是以圖像的模糊為代價的。圖像7×7均值濾波效果6.3.3超限鄰域平均法理論基礎為了減少模糊效應,找到清除噪聲和邊緣模糊這對矛盾的最佳統(tǒng)一。閾值的鄰域平均法以某個灰度值T作為閾值,如果某個像素的灰度大于其鄰近像素的平均值,并超過閾值,才使用平均灰度置換這個像素灰度:(6-1)函數(shù)說明retval=cv2.cvtColor(src,code[,dstCn])retval:表示與輸入值具有相同類型和深度的輸出圖像;src:表示原始輸入圖像;code:是色彩空間轉(zhuǎn)換碼,常見的枚舉值有cv2.cvtColor_BGR2RGB、cv2.cvtColor_BGR2GRAY、cv2.cvtColor_BGR2HSV、cv2.cvtColor_BGR2YCrCb、cv2.cvtColor_BGR2HLS;dstCn:表示目標圖像的通道數(shù)。

效果展示本例選取閾值為10。6.3.4方框濾波理論基礎除均值濾波之外,OpenCV還提供了方框濾波的方式。與均值濾波的不同在于,方框濾波不僅僅只計算像素均值,兩種方式選擇計算:函數(shù)說明dst=cv2.boxFilter(src,depth,ksize,anchor,normalize,borderType)dst:表示返回的方框濾波處理結果;src:表示原始圖像,該圖像不限制通道數(shù)目;depth:表示處理后圖像的深度,一般使用-1表示與原始圖像相同的深度;ksize:表示濾波卷積核的大?。籥nchor:表示圖像處理的錨點,其默認值為(-1,-1),表示位于卷積核中心點;normalize:表示是否進行歸一化操作;borderType:表示以哪種方式處理邊界值。效果展示(a)原圖(b)5x5未歸一化方框濾波結果效果展示(c)2X2為歸一化方框濾波結果(d)5x5歸一化方框濾波結果(e)2x2歸一化方框結果6.4高斯濾波理論基礎在高斯濾波中,按照與中心點的距離的不同,賦予像素點不同的權重值,靠近中心點的權重值較大,遠離中心點的權重值較小,在此基礎上計算鄰域內(nèi)各個像素值不同權重值的和函數(shù)說明dst=cv2.GassianBlur(src,ksize,sigmaX,sigmaY,borderType)dst:表示返回的高斯濾波處理結果;src:表示原始圖像,該圖像不限制通道數(shù)目;ksize:表示濾波卷積核的大小,需要注意的是濾波卷積核的數(shù)值必須是奇數(shù)。sigmaX:表示卷積核在水平方向上的權重值。sigmaY:表示卷積核在垂直方向上的權重值。如果sigmaY被設置為0,則通過sigmaX的值得到,但是如果兩者都為0,則通過如下方式計算得到:

borderType:表示以哪種方式處理邊界值。效果展示6.5中值濾波中值濾波將窗口中奇數(shù)個數(shù)據(jù)按大小順序排列,處于中心位置的那個數(shù)作為處理結果。一般采用一個含有奇數(shù)個點的滑動窗口,將窗口中各點灰度值的中值來替代指定點圖像中值濾波示意圖如圖6-14所示,取3×3窗口,從小到大排列:33200201202205206207208210

取中間值205,代替原來的數(shù)值202

中值濾波實現(xiàn)步驟:①將模板在圖中漫游,并將模板中心與圖中某個像素位置重合;②讀取模板下各對應像素的灰度值;③將這些灰度值從小到大排成1列;④找出這些值里排在中間的1個;(5)將這個中間值賦給對應模板中心位置的像素。中值濾波器對椒鹽噪聲的濾波效果較好,對高斯噪聲的處理效果不好。6.5.1N×N中值濾波理論基礎本程序計算灰度圖像f中以像素f(i,j)為中心的N×N屏蔽窗口(N=3,5,7,…)內(nèi)灰度的中值為u,無條件做f(i,j)=u處理,n由用戶給定。函數(shù)說明在OpenCV中提供了cv2.medianBlur()函數(shù)來實現(xiàn)圖像的中值濾波。其一般格式為:retval=cv2.medianBlur(src,ksize)retval:表示返回的方框濾波處理結果;src:表示原始圖像,該圖像不限制通道數(shù)目;ksize:表示濾波卷積核的大小。效果展示6.5.2十字型中值濾波理論基礎本程序計算灰度圖像f中以像素f(i,?j)為中心的十字形屏蔽窗口內(nèi)灰度值的中值u,無條件做f(i,?j)=u處理,N由用戶給定。效果展示6.5.3

N×N最大值濾波理論基礎本程序計算灰度圖像f中以像素f(i,?j)為中心的N×N屏蔽窗口(N=3,5,7,…)內(nèi)灰度的中值為u,無條件做f(i,j)=u處理,n由用戶給定。函數(shù)說明(1)retval=cv2.copyMakeBorder(src,top,bottom,left,right,borderType)用來給圖片添加邊框。retval:返回帶邊框的圖像;src:要處理的原圖;top,bottom,left,right:上下左右要擴展的像素數(shù);borderType:邊框類型,(2)min_val,max_val,min_loc,max_loc=cv2.minMaxLoc(ret)該函數(shù)用來找出矩陣中的最大值和最小值以及對應的坐標位置。min_val:最小值;max_val:最大值;min_loc:最小值坐標;max_loc:最大值坐標;ret:輸入矩陣。效果展示6.6雙邊濾波理論基礎雙邊濾波將濾波器的權系數(shù)分解設計為空域濾波器的權系數(shù)和圖像亮度差的權系數(shù)空間距離:當前點距離模板中心點的歐式距離Wd為灰度距離:當前點距離模板中心點的灰度差值的絕對值Wr為雙邊濾波器:

理論基礎雙邊濾波卷積表示為

表示為歸一化因子,S為卷積范圍。綜合結果:①平坦區(qū)域,變化很小,差值接近于0,范圍域權重接近于1,空間域權重起作用,相當于進行高斯模糊;②邊緣區(qū)域,像素差值大,像素范圍域權重變大,即使距離遠空間域權重小,加上像素域權重總的系數(shù)也較大,從而保護了邊緣信息。在突變的邊緣上,使用了像素差權重,所以很好的保留了邊緣。函數(shù)說明dst=cv2.bilateralFilter(src,d,sigmaColor,sigmaSpace,borderType)dst:表示返回的雙邊濾波處理結果;src:表示原始圖像,該圖像不限制通道數(shù)目;d:表示在濾波時選取的空間距離參數(shù),表示以當前像素點為中心點的半徑,在實際應用中一般選取5;sigmaColor:表示雙邊濾波時選取的色差范圍;sigmaSpace:表示坐標空間中的sigma值,它的值越大,表示越多的點參與濾波;borderType:表示以何種方式處理邊界。效果展示

(a)原圖(b)高斯濾波(c)雙邊濾波6.7

2D卷積核的實現(xiàn)理論基礎2D卷積核都能方便地設置卷積核的大小和數(shù)值。函數(shù)說明dst=cv2.filter2D(src,d,kernel,anchor,delta,borderType)dst:表示返回的雙邊濾波處理結果;src:表示原始圖像,該圖像不限制通道數(shù)目;d:表示處理結果圖像的圖像深度,一般使用-1表示與原始圖像使用相同的圖像深度;kernel:表示一個單通道的卷積核;anchor:表示圖像處理的錨點,其默認值為(-1,-1),表示位于卷積核中心點;delta:表示修正值,可選。如果該值存在,會在濾波的基礎上加上該值作為最終的濾波處理結果;borderType:表示以何種情況處理邊界。效果展示(a)原圖(b)ksize=13效果展示(c)ksize=9(d)ksize=5第7章圖像邊緣銳化處理目錄7.1概述7.2圖像微分邊緣檢測7.2.1縱向邊緣檢測7.2.2橫向邊緣檢測7.2.3雙向邊緣檢測7.3常用的邊緣檢測算子7.3.1Roberts邊緣檢測算子7.3.2Sobel邊緣檢測算子7.3.3Prewitt邊緣檢測算子7.3.4Scharr邊緣檢測算子7.3.5Krisch自適應邊緣檢測7.3.6拉普拉斯算子7.3.7高斯-拉普拉斯算子7.3.8Canny邊緣檢測7.4梯度銳化7.4.1提升邊緣7.4.2根據(jù)梯度二值化圖像7.1概述概述邊緣能勾劃出目標物體,使觀察者一目了然;邊緣蘊含了豐富的內(nèi)在信息是圖像識別中抽取圖像特征的重要屬性。邊緣檢測方法有微分邊緣檢測法、常用邊緣檢測算子、自適應邊緣檢測法等。7.2圖像微分邊緣檢測邊緣是由相鄰域灰度級不同的像素點構成的,若想增強邊緣,就應該突出相鄰點間灰度級的變化。(1)圖像數(shù)據(jù):如果用右列減去左列:

(2)圖像數(shù)據(jù):

下一行減去上一行得到一條很明顯邊界。7.2.1縱向邊緣檢測理論基礎對灰度圖像f在縱向進行微分操作:(7-1)這里i代表列,j代表行。該算法用如下卷積核:

7.2.2橫向邊緣檢測理論基礎對灰度圖像f在橫向進行微分:

該算法用如下卷積核:

對灰度圖像在橫向方向進行微分,圖像的橫向水平邊緣得到檢測。7.2.3雙向邊緣檢測理論基礎對灰度圖像在縱向和橫向進行微分,結果圖像的縱向和橫向的邊緣得到檢測。該算法用如下卷積核:

水平(i方向)垂直(j方向)效果展示

(a)原圖(b)縱向微分

(c)橫向微分(d)雙向一次微分7.3常用的邊緣檢測算子7.3.1Roberts邊緣檢測算子理論基礎Roberts邊緣算子采用的是對角方向相鄰的兩個像素之差。

該算法的算子如下:(1)retval=cv2.filter2D(src,d,kernel,anchor,delta,borderType)retval:表示返回的雙邊濾波處理結果;src:表示原始圖像,該圖像不限制通道數(shù)目;d:表示處理結果圖像的圖像深度,一般使用-1表示與原始圖像使用相同的圖像深度;kernel:表示一個單通道的卷積核;anchor:表示圖像處理的錨點,其默認值為(-1,-1),表示位于卷積核中心點;delta:表示修正值,可選。如果該值存在,則會在濾波的基礎上加上該值作為最終的濾波處理結果;borderType:表示以何種情況處理邊界;函數(shù)說明(2)retval=cv2.addWeighted(src1,alpha,src2,beta,gamma,dtype=-1))這個函數(shù)的作用是計算兩個數(shù)組(圖像陣列)的加權和,把兩張圖片疊加在一起。retval:輸出圖像;src1:第一個圖片陣列;alph

溫馨提示

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

評論

0/150

提交評論