計算機視覺應(yīng)用開發(fā)課件:圖像基礎(chǔ)_第1頁
計算機視覺應(yīng)用開發(fā)課件:圖像基礎(chǔ)_第2頁
計算機視覺應(yīng)用開發(fā)課件:圖像基礎(chǔ)_第3頁
計算機視覺應(yīng)用開發(fā)課件:圖像基礎(chǔ)_第4頁
計算機視覺應(yīng)用開發(fā)課件:圖像基礎(chǔ)_第5頁
已閱讀5頁,還剩86頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

圖像基礎(chǔ)圖像相關(guān)名詞概述位圖01任務(wù)通道02任務(wù)圖像相關(guān)名詞概述1顏色模式03任務(wù)布局04任務(wù)學(xué)習(xí)目標了解圖像的基本構(gòu)成了解圖像的通道含義

了解圖像中不同的顏色模式了解圖像的布局方式1位圖1位圖位圖圖像(bitmap),亦稱為點陣圖像或柵格圖像,是由稱作像素(圖片元素)的單個點組成的。這些點可以進行不同的排列和染色以構(gòu)成圖樣。當(dāng)放大位圖時,可以看見賴以構(gòu)成整個圖像的無數(shù)單個方塊。位圖的特點是可以表現(xiàn)色彩的變化和顏色的細微過渡,產(chǎn)生逼真的效果,缺點是在保存時需要記錄每一個像素的位置和顏色值,占用較大的存儲空間。1位圖圖像中像素點占的bit位數(shù),就是圖像的深度。比如:單色位圖:每個像素最多可以表示2種顏色,只需要使用長度為1的二進制位來表示,因此每個像素占1/8B。16色位圖:每個像素最多可以表示16種顏色,所以只需要長度為4的二進制表示,因此每個像素占1/2B。256色位圖:每個像素最多可以表示256種顏色,所以只需要長度為8的二進制表示,因此每個像素占1B。依次輪推,通常將計算機中存儲單個像素點所用的bit位稱作圖像的深度。BMP圖像大小計算公式:大小=分辨率×位深度/8。2通道2通道圖像通常分為單通道,三通道,四通道。單通道:就是通常所說的灰度圖,每個像素點只有一個值表示,如果圖像的深度為8,那么圖像像素值在0(黑)~255(白)之間。三通道:就是通常所說的彩色圖,每個像素點由三個值表示,如果圖像深度為8,那么圖像像素值由紅(0~255)、綠(0~255)、藍(0~255)疊加表示,色彩更加艷麗。四通道:也就是在三通道圖像基礎(chǔ)上加上透明程度,0是完全透明,255是完全不透明。3顏色模式顏色模式通過賦予C的不同維度不同的含義,可以用來描述不同的顏色空間。顏色模式,是將某種顏色表現(xiàn)為數(shù)字形式的模型,或者說是一種記錄圖像顏色的方式。本單元主要講述兩個常用的顏色模式:RGB,HSV。3顏色模式RGB模式是工業(yè)界的一種顏色標準,通過對紅(R)、綠(G)、藍(B)三個顏色通道的變化以及通道之間相互的疊加來得到各式各樣的顏色。R、G、B分別代表紅、綠、藍三個通道的顏色,這個標準幾乎囊括了人類視力所能感知的所有顏色,是目前運用最廣的顏色系統(tǒng)之一。HSV(Hue,Saturation,Value)是由A.R.Smith在1978年創(chuàng)建的一種根據(jù)顏色直觀特性(色調(diào)H,飽和度S,明度V)得到的顏色空間。在HSV顏色空間下,相比于RGB更容易跟蹤某種顏色的物體,常用于分割指定顏色的物體。34布局4向圖片添加文字圖像布局一般分為CHW和HWC兩種布局方式。其中:C:channel,圖像的通道數(shù);H:height,圖像的高度;W:width,圖像的寬度。在實際運用中經(jīng)常會用到這兩種布局的轉(zhuǎn)換,轉(zhuǎn)換方式也非常簡單,只需使用數(shù)組的transpose((2,0,1))方法即可。ThankYOU!圖像基礎(chǔ)概述01任務(wù)圖像的讀寫與保存02任務(wù)圖像基礎(chǔ)1圖像繪制03任務(wù)向圖片添加文字04任務(wù)學(xué)習(xí)目標了解OpenCV掌握圖像的讀寫與保存學(xué)會繪制線段,矩陣,圓,橢圓,矩陣,多邊形等。向圖片添加文字1概述1概述在學(xué)習(xí)圖像操作前,我們先了解一下OpenCV。為什么呢?OpenCV是一個基于BSD許可(開源)發(fā)行的跨平臺計算機視覺和機器學(xué)習(xí)軟件庫,實現(xiàn)了圖像處理和計算機視覺方面的很多通用算法。OpenCV用C++語言編寫,它具有C++,Python,Java和MATLAB接口,并支持Windows,Linux,Android和MacOS。在以后的學(xué)習(xí)中,關(guān)于圖像操作部分(主要是數(shù)據(jù)預(yù)處理環(huán)節(jié)),我們大部分使用OpenCV實現(xiàn)。OpenCV的安裝命令“pipinstallopencv-python”,使用時通過“importcv2”導(dǎo)入就行了。2圖像的讀寫與保存2圖像的讀寫與保存圖像是由眾多的像素值構(gòu)成的,我們?nèi)绾稳ゲ僮鲌D像呢?答案就是將圖像轉(zhuǎn)化為數(shù)組。OpenCV提供了這樣的方法。我們使用cv2.imread()方法讀取圖片,返回數(shù)組格式。圖像的讀寫與保存對于cv2.imread(filename,flags)函數(shù)參數(shù)如下:參數(shù)filename:圖片的路徑和文件名。如果圖片放在當(dāng)前文件夾下,直接寫文件名就行了,如“l(fā)ena.jpg”,否則需要給出絕對路徑或相對路徑,如“img/lena.jpg”。參數(shù)flags:圖片的讀取方式,省略則為默認值。讀取方式有三種,分別為:

cv2.IMREAD_COLOR:彩色圖(1),默認值;cv2.IMREAD_GRAYSCALE:灰度圖(0);cv2.IMREAD_UNCHANGED:包含透明通道的彩色圖(-1)。2圖像的讀寫與保存在實際應(yīng)用中,通常對圖像進行一系列操作后要顯示一下處理后的結(jié)果。首先需要新建一個空白窗口用作圖像顯示,再調(diào)用圖片顯示命令在窗口中顯示出圖片。dWindow(window_name,默認參數(shù))

的功能就是新建一個顯示窗口,可以指定窗口的類型。具體的參數(shù)為:參數(shù)window_name是窗口的名字;默認參數(shù)為cv2.WINDOW_AUTOSIZE,表示窗口大小自適應(yīng)圖片,也可以設(shè)置為cv2.WINDOW_NORMAL,表示窗口大小可調(diào)整。圖片比較大的時候,可以考慮用后者。在一般使用的時候,可以跳過此步,直接使用imshow()方法。22圖像的讀寫與保存OpenCV中可以使用cv2.imshow()方法顯示圖片,同時窗口會自適應(yīng)圖片大小。imshow(window_name,image)方法也有兩個參數(shù),第一個參數(shù)window_name是窗口的名字,第二個參數(shù)image是要顯示的圖片內(nèi)容的數(shù)組形式。該方法執(zhí)行后會彈出一個窗口,窗口的名字就是上面定義的window_name。如果想要設(shè)置窗口的顯示時間,則需要使用waitKey()方法,參數(shù)為設(shè)置的毫秒數(shù),0代表永久顯示(除非手動關(guān)掉窗口)。顯示完成后,還需要釋放窗口占用的資源,這里使用cv2.destroyAllWindows()方法,該方法會釋放所有窗口占用的資源,如果要釋放指定窗口的資源,可以使用cv2.destroyWindow(window_name)方法,參數(shù)window_name為要釋放的窗口的名字。2圖像的讀寫與保存如果想把處理后的圖片結(jié)果保存到本地,可以使用cv2.imwrite(filename,img[,paras])方法,參數(shù)filename是保存的路徑,參數(shù)img是保存的圖片內(nèi)容,paras表示不同編碼格式的參數(shù),一般為nparray多維數(shù)組形式。3圖形繪制圖形繪制在實際運用中,我們會在圖片上添加一些圖形,比如目標檢測時在物體周圍畫個矩形框,人臉識別中將人臉的關(guān)鍵點用點(圓形)標出來。OpenCV常用的形狀繪制方法:3線段的繪制是使用cv2.line(img,pt1,pt2,color[,thickness[,lineType[,shift]]])方法,參數(shù)img為輸入的圖像(繪制圖像的每個方法的第一個參數(shù)都是輸入的圖像),參數(shù)pt1、pt2、color、thickness、lineType(可省略)依次為起點的坐標、終點的坐標、顏色、線條的粗細和線條的類型。參數(shù)shift代表坐標精確到小數(shù)點后第幾位。圖形繪制矩形的繪制是使用cv2.rectangle(img,pt1,pt2,color[,thickness[,lineType[,shift]]])方法。畫矩形的方法可分為兩種,一種是確定四個頂點的坐標,另一種只確定兩個對角頂點的坐標。rectangle()方法基于后者。參數(shù)img為輸入的圖像,參數(shù)pt1、pt2為繪畫矩形的兩個對角頂點坐標,參數(shù)color、thickness、lineType(可省略)依次為顏色、線條的粗細和線條的類型。3圓形的繪制使用cv2.circle(img,center,radius,color[,thickness[,lineType[,shift]]])方法,參數(shù)img為輸入的圖像,參數(shù)center、radius、color、thickness、lineType(可省略)依次為圓形的原點、圓形的半徑、顏色、線條的粗細和線條的類型。如果thickness變量的值為負,則代表要畫一個實心圓。

圖形繪制橢圓的繪制與圓形繪制相似,利用cv2.ellipse(image,centerCoordinates,axesLength,angle,startAngle,endAngle,color[,thickness[,lineType[,shift]]])方法實現(xiàn)橢圓的繪制。其中參數(shù)img為輸入的圖像,centerCoordinates、axesLength、angle、startAngle、endAngle、color、thickness、lineType分別為橢圓的中心坐標、元組(橢圓的長軸長度,短軸長度)、旋轉(zhuǎn)角度、橢圓弧的起始角度、橢圓弧的終止角度、邊界線的顏色、線條的粗細和線條的類型。3對于多邊形的繪制,需要先創(chuàng)建包含頂點坐標的數(shù)組,再調(diào)用cv2.polylines(img,pts,isClosed,color[,thickness[,lineType[,shift]]])進行繪制。其中參數(shù)img為輸入的圖像,參數(shù)pts、isClosed、color、thickness、lineType分別為多邊形上點的數(shù)組、標志、多邊形顏色、多邊形線的粗細、多邊形線的類型。標志代表繪制的多邊形是否閉合,若為True,

則畫若干個閉合多邊形,

若為False,

則畫一條連接所有點的折線。4向圖片添加文字4向圖片添加文字OpenCV中的cv2.putText(img,text,org,fontFace,fontScale,color,thickness=None,lineType)方法實現(xiàn)了添加文字的功能,參數(shù)img、text、org、fontFace、fontScale、color、thickness、lineType分別為添加文字的圖片、添加的文字、左上角坐標、字體、字體大小、顏色、字體粗細和線條類型。ThankYOU!圖像幾何變換圖像縮放01任務(wù)圖像翻轉(zhuǎn)02任務(wù)圖像平移及旋轉(zhuǎn)03任務(wù)學(xué)習(xí)目標掌握圖像的縮放掌握圖像的翻轉(zhuǎn)掌握圖像的平移及旋轉(zhuǎn)方法1圖像縮放1圖像縮放

圖像縮放,顧名思義,就是對圖像進行整體放大或縮小的操作。圖像縮放在數(shù)據(jù)預(yù)處理時經(jīng)常會用作規(guī)范圖像的大小(寬高),從而便于后面神經(jīng)網(wǎng)絡(luò)的處理。OpenCV中是利用cv2.resize(src,dsize,dst=None,fx=None,fy=None,interpolation=None)方法來對圖像進行縮放操作,該方法可以按照指定的寬度,高度縮放圖片,也可以按照比例縮放圖片。其中參數(shù)src、dsize、dst、fx、fy、interpolation分別為原圖片、輸出圖像尺寸、目標圖像、沿水平軸的比例因子、沿垂直軸的比例因子、插值方法。1圖像縮放按照比例縮放:如果想讓圖片的寬和高均放大了一倍,則使用這種方式,需指定第二個參數(shù)dsize為None,接著指定fx和fy的值,表示要將寬和高放大或縮小的倍數(shù)。interpolation參數(shù)代表插值方式,默認為INTER_LINEAR雙線性插值方式,通常可以不指定。2圖像翻轉(zhuǎn)2圖像翻轉(zhuǎn)圖像翻轉(zhuǎn),即沿著某條線對圖像進行翻轉(zhuǎn)操作。圖像翻轉(zhuǎn)在數(shù)據(jù)集偏少的時候經(jīng)常用來擴充數(shù)據(jù)集,從而增加擬合性。OpenCV中使用cv2.flip(src,flipCode,dst=None)方法實現(xiàn)圖像的翻轉(zhuǎn),其中參數(shù)src為要翻轉(zhuǎn)的圖片,參數(shù)flipCode的值為0則垂直翻轉(zhuǎn)(沿x軸);大于>0則水平翻轉(zhuǎn)(沿y軸);小于0則代表水平垂直翻轉(zhuǎn),參數(shù)dst為目標圖片。3圖像平移及旋轉(zhuǎn)圖像平移及旋轉(zhuǎn)圖像平移,即讓圖片沿著x軸和y軸方向進行平移操作。首先需要具體了解一下圖片中x軸和y軸是怎么確定的。整個坐標系是以圖像的左上角為原點,向右為x軸,向下為y軸。OpenCV中利用cv2.warpAffine(src,M,dsize[,flags[,borderMode[,borderValue]]])方法來實現(xiàn)圖像平移。首先需要定義平移矩陣M,矩陣M中是一個2行3列的放射變換矩陣,定義了x軸和y軸的平移量。參數(shù)src、dsize、flags、borderMode、borderValue分別為輸入圖像、輸出圖像的大小、插值法INTE_LINEAR(默認)、填充模式(當(dāng)borderMode=BORDER_CONSTANT時為值填充)。33圖像平移及旋轉(zhuǎn)圖像旋轉(zhuǎn)使用的也是OpenCV中的cv2.warpAffine()方法,不同的是還需要使用其中的cv2.getRotationMatrix2D(center,angle,scale)方法來計算旋轉(zhuǎn)矩陣。與圖像翻轉(zhuǎn)的區(qū)別是圖像旋轉(zhuǎn)是在同一水平面進行的,其中center為旋轉(zhuǎn)中心,angle為旋轉(zhuǎn)角度,負數(shù)表示順時針旋轉(zhuǎn),scale為縮放比例。ThankYOU!閾值分割固定閾值分割01任務(wù)自適應(yīng)閾值分割02任務(wù)Ostu閾值03任務(wù)圖像輪廓04任務(wù)學(xué)習(xí)目標掌握固定閾值分割,自適應(yīng)閾值分割,Otsu閾值分割基于閾值分割畫出圖像輪廓1固定閾值分割1固定閾值分割固定閾值化分割是一種傳統(tǒng)的最常用的圖像分割方法,因其實現(xiàn)簡單、計算量小、性能較穩(wěn)定而成為圖像分割中最基本和應(yīng)用最廣泛的分割技術(shù)。它特別適用于目標和背景占據(jù)不同灰度級范圍的圖像。OpenCV中使用cv2.threshold(src,thresh,maxval,type[,dst])來實現(xiàn)固定閾值分割,其中ret是returnvalue縮寫,代表當(dāng)前的閾值。函數(shù)有4個參數(shù):參數(shù)src:要處理的原圖,一般是灰度圖;參數(shù)thresh:設(shè)定的閾值;參數(shù)maxval:最大閾值,一般為255;1固定閾值分割參數(shù)type:閾值的方式,dst為目標圖片,包含以下五種類型(cv2.THRESH_BINARY、cv2.THRESH_BINARY_INV、cv2.THRESH_TRUNC、cv2.THRESH_TOZERO、cv2.THRESH_TOZERO_INV)。cv2.THRESH_BINARY:超過閾值部分的,取最大值maxval,否則就是0;cv2.THRESH_BINARY_INV:與BINARY的情況剛剛相反;cv2.THRESH_TRUNC:大于閾值的部分,設(shè)置為閾值,否則不變;cv2.THRESH_TOZERO:大于閾值的部分不改變,否則設(shè)置為0;cv2.THRESH_TOZERO_INV:TOZERO的反轉(zhuǎn)。2自適應(yīng)閾值分割2自適應(yīng)閾值分割固定閾值是將整幅圖片都應(yīng)用一個閾值進行分割,它并不適用于明暗分布不均的圖片。自適應(yīng)閾值分割通俗地講就是圖片的每個局部都會通過處理得到一個閾值,這個區(qū)域就用這個閾值來進行分割。每個區(qū)域都有不同的閾值來處理,這樣就適用于處理顏色分布不均的圖片。OpenCV中使用cv2.adaptiveThreshold(src,maxValue,adaptiveMethod,thresholdType,blockSize,C,dst=None)自適應(yīng)閾值方法每次取圖片的小部分來計算閾值,這樣圖片不同區(qū)域的閾值就不盡相同。其函數(shù)的參數(shù)分別為:參數(shù)src:要處理的原圖;參數(shù)maxValue:最大閾值,一般為255;2自適應(yīng)閾值分割參數(shù)adaptiveMethod:小區(qū)域閾值的計算方式(ADAPTIVE_THRESH_MEAN_C:小區(qū)域內(nèi)取均值,ADAPTIVE_THRESH_GAUSSIAN_C:小區(qū)域內(nèi)加權(quán)求和,權(quán)重是高斯核);參數(shù)thresholdType:閾值方式;參數(shù)blockSize:小區(qū)域的面積,如11就是11×11的小塊;參數(shù)C:每個鄰域計算出的值需要再減去c得到閾值;參數(shù)dst:最終閾值等于小區(qū)域計算出的閾值再減去此值。3Ostu閾值分割3Ostu閾值在前面固定閾值中選取了一個閾值為127進行閾值分割,那如何知道選的這個閾值效果好不好呢?答案是:不斷嘗試,所以這種方法在很多文獻中都被稱為經(jīng)驗閾值。Otsu閾值法就提供了一種自動高效的二值化方法。Otsu算法也稱最大類間差法,有時也稱之為大津算法,由大津于1979年提出,被認為是圖像分割中閾值選取的最佳算法。其算法計算簡單,不受圖像亮度和對比度的影響,因此在數(shù)字圖像處理上得到了廣泛的應(yīng)用。它是按圖像的灰度特性,將圖像分成背景和前景兩部分。因方差是灰度分布均勻性的一種度量,背景和前景之間的類間方差越大,說明構(gòu)成圖像的兩部分的差別越大,當(dāng)部分前景錯分為背景或部分背景錯分為前景都會導(dǎo)致兩部分差別變小。因此,使類間方差最大分割意味著錯分概率最小。Otsu閾值分割方法,選擇使得類間方差最大的值作為閾值,設(shè)圖像的歸一化直方圖為p,亮度階為k(例如元素值取0~255,則k=256),則設(shè)3Ostu閾值Otsu閾值分割方法,選擇使得類間方差最大的值作為閾值,設(shè)圖像的歸一化直方圖為p,亮度階為k(例如元素值取0~255,則k=256),則設(shè)

,,,期望為,,,則類間方差為4圖像輪廓4圖像輪廓圖像閾值分割主要是針對圖片的背景和前景進行分離,而圖像輪廓也是圖像中非常重要的一個特征信息,通過對圖像輪廓的操作,就能獲取目標圖像的大小、位置、方向等信息。畫出圖像輪廓的基本思路是:先用閾值分割劃分為兩類圖像,再去尋找輪廓。OpenCV中使用cv2.findContours(image,mode,method)函數(shù)來尋找圖像輪廓,其中參數(shù)image、mode、method分別為輸入的圖像、輪廓搜索模式(決定了輪廓的提取方式)、輪廓近似方法(決定了如何表達輪廓)。mode輪廓的檢索模式有:cv2.RETR_EXTERNAL表示只檢測外輪廓;cv2.RETR_LIST表示檢測的輪廓不建立等級關(guān)系;cv2.RETR_CCOMP表示建立兩個等級的輪廓,上面的一層為外邊界,里面的一層為內(nèi)孔的邊界信息。如果內(nèi)孔內(nèi)還有一個連通物體,這個物體的邊界也在頂層;cv2.RETR_TREE表示建立一個等級樹結(jié)構(gòu)的輪廓。4圖像輪廓method輪廓的近似辦法有:cv2.CHAIN_APPROX_NONE表示存儲所有的輪廓點,相鄰的兩個點的像素位置差不超過1,即max(abs(x1-x2),abs(y2-y1))==1;cv2.CHAIN_APPROX_SIMPLE表示壓縮水平方向,垂直方向,對角線方向的元素,只保留該方向的終點坐標,例如一個矩形輪廓只需4個點來保存輪廓信息;cv2.CHAIN_APPROX_TC89_L1,CV_CHAIN_APPROX_TC89_KCOS表示使用teh-Chinlchain近似算法。4圖像輪廓cv2.findContours()函數(shù)的輸出信息contours、hierarchy分別為返回的輪廓和圖像的拓撲信息(輪廓層次)。如果想要顯示出圖像輪廓,還需要使用OpenCV中的cv2.drawContours(image,contours,contourIdx,color,thickness=None,lineType=None,hierarchy=None,maxLevel=None,offset=None)函數(shù)來繪制出圖像輪廓,其中image、contours、contourIdx、color分別為輸入的圖像、繪制的輪廓、輪廓填充和輪廓的顏色。ThankYOU!圖像統(tǒng)計圖像直方圖01任務(wù)繪制直方圖02任務(wù)直方圖均衡化02任務(wù)學(xué)習(xí)目標學(xué)習(xí)如何繪制直方圖掌握直方圖均衡化了解直方圖概念1圖像直方圖1圖像直方圖圖像直方圖反映了圖像中的灰度分布規(guī)律。它描述每個灰度級具有的像元個數(shù),但不包含這些像元在圖像中的位置信息。任何一幅特定的圖像都有唯一的直方圖與之對應(yīng),但不同的圖像可以有相同的直方圖。如果一幅圖像有兩個不相連的區(qū)域組成,并且每個區(qū)域的直方圖已知,則整幅圖像的直方圖是兩個區(qū)域直方圖的和。根據(jù)直方圖的形態(tài)可以大致推斷圖像質(zhì)量的好壞。由于圖像包含有大量的像元,其像元灰度值的分布應(yīng)符合概率統(tǒng)計分布規(guī)律。假定像元的灰度值是隨機分布的,那么其直方圖應(yīng)該是正態(tài)分布。圖像的灰度值是離散變量,因此直方圖表示的是離散的概率分布。若以各灰度級的像元數(shù)占總像元數(shù)的比例值為縱坐標軸做出圖像的直方圖,將直方圖中各條形的最高點連成一條外輪廓線,縱坐標的比例值即為某灰度級出現(xiàn)的概率密度,輪廓線可近似看成圖像相應(yīng)的連續(xù)函數(shù)的概率分布曲線。

1圖像直方圖?幅數(shù)字圖像在范圍[0,G]內(nèi)總共有L個灰度級,其直?圖定義為離散函數(shù):,其中:

是第

級亮度,

是灰度級為

的圖像中的像素數(shù),

。

在實際處理中,圖像直方圖的x軸區(qū)間一般是[0,255],對應(yīng)的是8位位圖的256個灰度級;y軸對應(yīng)的是具有相應(yīng)灰度級的像素點的個數(shù)。雖然8位的圖像都具有256個灰度級(每一個像素可以有256個灰度值),但是屬于不同灰度級的像素數(shù)量是很不一樣的。有時為了便于表示,也會采用歸一化直方圖。在歸一化直方圖中,x軸仍然表示灰度級;y軸不再表示灰度級出現(xiàn)的次數(shù),而是灰度級出現(xiàn)的頻率。2繪制直方圖2繪制直方圖計算直方圖的方式有兩種,一種是使用OpenCV函數(shù),一種是使用Numpy函數(shù)。OpenCV中利用cv2.calcHist(images,channels,mask,histSize,ranges[,hist[,accumulate]])來計算直方圖,其中images、channels、mask、histSize、ranges分別為原圖像(圖像格式為uint8或?oat32)、通道類型、掩模圖像、BIN的數(shù)目、像素值范圍。Numpy中有兩個函數(shù)都可以計算直方圖,分別為np.histogram(a,bins=10,range=None,weights=None,density=False)和np.bincount(x,weights=None,minlength=0)。在np.histogram()方法中參數(shù)a是待統(tǒng)計數(shù)據(jù)的數(shù)組,參數(shù)bins指定統(tǒng)計的區(qū)間個數(shù),參數(shù)range是一個長度為2的元組,表示統(tǒng)計范圍的最小值和最大值,默認值None,即表示范圍由數(shù)據(jù)的范圍決定,參數(shù)weights為數(shù)組的每個元素指定了權(quán)值,np.histogram()會對區(qū)間中數(shù)組所對應(yīng)的權(quán)值進行求和,參數(shù)density為True時,返回每個區(qū)間的概率密度;若為False,則返回每個區(qū)間中元素的個數(shù)。在np.bincount()方法中,參數(shù)x為輸入數(shù)組,參數(shù)weights為權(quán)重數(shù)組,參數(shù)minlength為輸出陣列的最小BIN數(shù)。3直方圖均衡化3直方圖均衡化直方圖均衡化是圖像灰度變換中有一個非常有用的方法。圖像的直方圖是對圖像對比度效果上的一種處理,旨在使得圖像整體效果均勻,黑與白之間的各個像素級之間的點分布更均勻一點。通過這種方法,亮度可以更好地在直方圖上分布。直方圖均衡化(histogramequlization)的目標是創(chuàng)建一幅在整個亮度范圍內(nèi)具有相同亮度分布的圖像,輸入直方圖H[p]和亮度范圍[p0,pk],直方圖均衡化的目標是找到一個單調(diào)的像素亮度變換q=T(p),使輸出直方圖G[q]在整個輸出亮度范圍[q0,qk]內(nèi)是均勻的,增強了靠近直方圖極大值附近的亮度的對比度,減小了極小值附近的對比度。在對圖像做進一步處理之前,直方圖均衡化通常是對圖像灰度值進行歸一化的一個非常好的方法,并且可以增強圖像的對比度,原先圖像灰色區(qū)域的細節(jié)變得清晰。3直方圖均衡化直方圖均衡化的步驟如下:對于k(256)個亮度級、大小為M×N的圖像,創(chuàng)建長為k的數(shù)組H,初始化為0;形成圖像直方圖H;形成累計直方圖Hc,Hc[p]=Hc[p-1]+H[p],Hc[0]=H[0];設(shè)置

;重新掃描圖像,根據(jù)查找表獲得變換結(jié)果。在OpenCV中,可以使用cv2.equalizeHist()函數(shù)來實現(xiàn)直方圖均衡化,返回值即為均衡化后的圖像。

ThankYOU!圖像濾波圖像濾波01任務(wù)線性濾波02任務(wù)非線性濾波02任務(wù)學(xué)習(xí)目標掌握線性濾波的常用方法掌握非線性濾波的常用方法掌握圖像濾波的基本概念1圖像濾波1圖像濾波圖像濾波,即在盡量保留圖像細節(jié)特征的條件下對目標圖像的噪聲進行抑制,同時會造成圖像一定程度上的模糊,這也叫做平滑或者低通濾波。無論是均衡化直方圖和圖像濾波,都一定程度上降低了圖像閾值分割的難度,直方圖增強圖像內(nèi)的對比度,圖像濾波消除圖像內(nèi)的噪聲干擾。進行平滑時,鄰域內(nèi)不同位置的像素被賦予不同的權(quán)值,對圖像進行平滑的同時能夠更多的保留圖像的總體灰度分布特征。圖像濾波是圖像預(yù)處理中的操作,其處理效果的好壞將直接影響到后續(xù)圖像處理和分析的有效性和可靠性。1圖像濾波圖像濾波的兩個目的是提取特征(抽出對象的特征作為圖像識別的特征模式)和清除噪聲(為適應(yīng)圖像處理的要求,消除圖像數(shù)字化時所混入的噪聲)。濾波處理的兩個基本要求為無損信息(不能損壞圖像的輪廓及邊緣等重要信息)和圖像清晰(使圖像清晰視覺效果好)。圖像平滑的兩類目的:模糊+消除噪音。平滑濾波是低頻增強的空間域濾波技術(shù)。空間域的平滑濾波,一般采用簡單平均法進行,就是求鄰近像元點的平均亮度值。鄰域的大小與平滑的效果直接相關(guān),鄰域越大平滑的效果越好,但鄰域過大,平滑會使邊緣信息損失的越大,從而使輸出的圖像變得模糊,因此需合理選擇鄰域的大小。1圖像濾波噪聲一般可以分為高斯噪聲和椒鹽噪聲,那高斯噪聲和椒鹽噪聲有什么區(qū)別呢?高斯噪聲是指噪聲服從高斯分布,即某個強度的噪聲點個數(shù)最多,離這個強度越遠噪聲點個數(shù)越少,且這個規(guī)律服從高斯分布。高斯噪聲是一種加性噪聲,即噪聲直接加到原圖像上,因此可以用線性濾波器濾除。

椒鹽噪聲類似把椒鹽撒在圖像上,因此得名,是一種在圖像上出現(xiàn)很多白點或黑點的噪聲,如電視里的雪花噪聲等。椒鹽噪聲可以認為是一種邏輯噪聲,用線性濾波器濾除的結(jié)果不好,一般采用中值濾波器濾波可以得到較好的結(jié)果。

圖像濾波可大致分為兩類:線性濾波和非線性濾波。2線性濾波2線性濾波

線性濾波器的原始數(shù)據(jù)與濾波結(jié)果是一種算術(shù)運算,即用加減乘除等運算實現(xiàn),如均值濾波器(模板內(nèi)像素灰度值的平均值)、高斯濾波器(高斯加權(quán)平均值)等。由于線性濾波器是算術(shù)運算,有固定的模板,因此濾波器的轉(zhuǎn)移函數(shù)是可以確定并且是唯一的(轉(zhuǎn)移函數(shù)即模板的傅里葉變換)。1.均值濾波均值濾波是最簡單的一種濾波操作,輸出圖像的每一個像素是核窗口內(nèi)輸入圖像對應(yīng)像素的平均值(所有像素加權(quán)系數(shù)相等)。OpenCV中利用cv2.blur(img,ksize)來實現(xiàn)均值濾波,其中參數(shù)img為原圖像,ksize為核的大小。2線性濾波

2.高斯濾波高斯濾波是一種線性平滑濾波,適用于消除高斯噪聲,廣泛應(yīng)用于圖像處理的減噪過程。通俗的講,高斯濾波就是對整幅圖像進行加權(quán)平均的過程,每一個像素點的值,都由其本身和鄰域內(nèi)的其他像素值經(jīng)過加權(quán)平均后得到,通常用它來減少圖像噪聲以及降低細節(jié)層次。這種模糊技術(shù)生成的圖像,其視覺效果就像是經(jīng)過一個毛玻璃在觀察圖像,這與鏡頭焦外成像效果以及普通照明陰影中的效果都明顯不同。高斯平滑也用于計算機視覺算法中的預(yù)處理階段,以增強圖像在不同比例大小下的圖像效果(參見尺度空間表示以及尺度空間實現(xiàn))。從數(shù)學(xué)的角度來看,圖像的高斯模糊過程就是圖像與正態(tài)分布做卷積。由于正態(tài)分布又叫高斯分布,所以這項技術(shù)就稱為高斯模糊。圖像與圓形方框模糊做卷積將會生成更加精確的焦外成像效果。由于高斯函數(shù)的傅立葉變換是另外一個高斯函數(shù),所以高斯模糊對于圖像來說就是一個低通濾波器。2線性濾波數(shù)值圖像處理中,高斯濾波主要可以使用兩種方法實現(xiàn)。?種是離散化窗口滑窗卷積,另?種方法是通過傅里葉變化。最常見的就是滑窗實現(xiàn),只有當(dāng)離散化的窗口非常大,使用滑窗計算量非常大的情況下,可能會考慮基于傅里葉變化的實現(xiàn)方法。離散化窗口滑窗卷積時主要利用的是高斯核,高斯核的大小為奇數(shù),因為高斯卷積會在其覆蓋區(qū)域的中心輸出結(jié)果。高斯卷積的公

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論