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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

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

則畫(huà)若干個(gè)閉合多邊形,

若為False,

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

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

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

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

是第

級(jí)亮度,

是灰度級(jí)為

的圖像中的像素?cái)?shù),

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

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

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

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

圖像濾波可大致分為兩類(lèi):線性濾波和非線性濾波。2線性濾波2線性濾波

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

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

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論