freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

瞳孔動態(tài)監(jiān)測系統(tǒng)的研究與開發(fā)畢業(yè)設(shè)計畢業(yè)論文(編輯修改稿)

2025-07-19 18:08 本頁面
 

【文章內(nèi)容簡介】 原圖使用閾值 T =38來進(jìn)行二值化閾值分割, 所示。值得說明的是,在后面的實現(xiàn)系統(tǒng)中,也是采用固定閾值來進(jìn)行瞳孔粗分割。這樣處理,既節(jié)約了閾值選擇所花費的時間消耗,也達(dá)到了分割出大部分瞳孔的目的。圖 灰度直方圖 二值化將256個亮度等級的灰度圖像通過適當(dāng)?shù)拈撝颠x取而獲得仍然可以反映圖像整體和局部特征的二值化圖像。在數(shù)字圖像處理中,二值圖像占有非常重要的地位,首先,圖像的二值化有利于圖像的進(jìn)一步處理,使圖像變得簡單,而且數(shù)據(jù)量減小,能凸顯出感興趣的目標(biāo)的輪廓。其次,要進(jìn)行二值圖像的處理與分析,首先要把灰度圖像二值化,得到二值化圖像。所有灰度大于或等于閾值的像素被判定為屬于特定物體,其灰度值為255表示,否則這些像素點被排除在物體區(qū)域以外,灰度值為0,表示背景或者例外的物體區(qū)域。圖像二值化也叫圖像黑白化,那么,彩色圖像黑白化處理通常有三種方法:最大值法、平均值法、加權(quán)平均值法,公式法 。下面詳細(xì)介紹四種方法的原理:最大值法:最大值法是每個像素點的RGB值等于原像素點的RGB值中最大的一個,即R=G=B=MAX( R,G,B );效果,最大值產(chǎn)生亮度很高的黑白圖像。平均值法:平均值法使每個像素點的RGB值等于原像素點的RGB值的平均值,即R=G=B=(R+G+B)/3。加權(quán)平均法:加權(quán)平均法根據(jù)需要指定每個像素點RGB的權(quán)數(shù),并取其加權(quán)平均值,即R=G=B=(Wr*R+Wg*G+Wb*B )/3,Wr、Wg、Wb表示RGB的權(quán)數(shù),均大于零,通過取不同的權(quán)數(shù)可實現(xiàn)不同的效果。公式法:gray=*R+*G+*B ()其中R、G、B為RGB的像素值。 種子點定位可以對二值化后的瞳孔圖像的水平和垂直兩個方向進(jìn)行灰度值投影,沿坐標(biāo)軸方向的進(jìn)行灰度值加值。設(shè)圖像尺寸大小是 m n,則得到:水平投影: 垂直投影: 而本文僅對灰度值為0的點進(jìn)行統(tǒng)計,在二值化后的瞳孔圖像中沿著水平和垂直兩個方向進(jìn)行掃描。繪制垂直和水平方向上的統(tǒng)計,最后找到兩個方向上像素個數(shù)累加值最大點所在的位置,則得到位于瞳孔中種子點的坐標(biāo)(Xmax(i),Ymax(j))。如果原圖的尺寸較大,那么在整個運算過程中,種子點的查找會消耗大量的時間。為了提高查找種子點的速度,在整個算法流程中,在以下兩個部分做了改進(jìn)和優(yōu)化。在對原圖進(jìn)行了預(yù)處理后,圖像去除了光斑、睫毛等影響,然后可以對其進(jìn)行縮小處理,得到原圖的縮略圖。假設(shè)縮略圖的寬和長度都為原圖的 1/2,那么縮略圖的面積將變?yōu)樵瓐D的 1/4,這樣查找種子點的運算量將大大減小。在縮略圖中找到種子點后,然后將其橫縱坐標(biāo)按照縮小比例進(jìn)行放大,就可以得到在原始圖像中種子點的坐標(biāo)了。 區(qū)域生長法閾值分割法由于沒有或很少考慮空間關(guān)系,使多閾值選擇受到限制,基于區(qū)域的分割方法可以彌補(bǔ)這點不足。該方法利用的是圖像的空間性質(zhì),認(rèn)為分割出來的屬于同一區(qū)域的像素應(yīng)具有相似的性質(zhì),傳統(tǒng)的區(qū)域分割法有區(qū)域生長法和分裂合并法。本文用區(qū)域生長法來達(dá)到空間分割。區(qū)域生長的基本思想是將具有相似性質(zhì)的像素集合起來構(gòu)成區(qū)域。具體先對每個需要分割的區(qū)域找一個種子像素作為生長的起點,然后將種子像素周圍領(lǐng)域中與種子像素有相同或相似性質(zhì)的像素合并到種子像素所在的區(qū)域中。將這些新像素當(dāng)作新的種子像素繼續(xù)進(jìn)行上面的過程,直到再沒有滿足條件的像素可被包括進(jìn)來,這樣一個區(qū)域就長成了。在實際應(yīng)用區(qū)域生長法是需要解決三個問題:(1)確定一組能正確代表所需區(qū)域的種子像素;(2)確定在生長過程中能將像素包括進(jìn)來的準(zhǔn)則;(3)制定讓生長過程停止的條件或規(guī)則。區(qū)域生長的關(guān)鍵就是選擇合適的生長或相似準(zhǔn)則,大部分區(qū)域生長準(zhǔn)則使用圖像的局部性質(zhì)。生長準(zhǔn)則可根據(jù)不同原則制定,而使用不同的生長準(zhǔn)則會影響區(qū)域生長的過程,三種基本的生長準(zhǔn)則和方法:(1)基于區(qū)域灰度差基于區(qū)域灰度差的方法主要有如下步驟: 步驟一:對像素進(jìn)行掃描,找出尚沒有歸屬的像素。步驟二:以該像素為中心檢查它的鄰域像素,即將鄰域中的像素逐個與之比較,如果灰度差小于預(yù)先確定的閾值,將它們合并。步驟三:以新合并的像素為中心,返回步驟二,檢查新像素的鄰域,直到區(qū)域不能進(jìn)一步擴(kuò)張。步驟四:返回步驟一,繼續(xù)掃描直到所有像素都有歸屬,則結(jié)束整個生長過程。采用上述方法得到的結(jié)果對區(qū)域生長起點的選擇有較大的依賴性。為克服這個問題可以對方法做以下改進(jìn):將灰度差得閾值設(shè)為零,這樣具有相同灰度的像素合并到一起,然后比較所相鄰區(qū)域之間的平均灰度差,合并灰度差小于某一閾值的區(qū)域。(2)基于區(qū)域灰度分布統(tǒng)計性質(zhì)以灰度分布相似性作為生長準(zhǔn)則來決定區(qū)域的合并,具體步驟如下:步驟一:把像素分成互不重疊的小區(qū)域。步驟二:比較鄰接區(qū)域的累積灰度直方圖,根據(jù)灰度分布的相似性進(jìn)行區(qū)域合并。步驟三:設(shè)定終止準(zhǔn)則,通過反復(fù)進(jìn)行步驟二中的操作,將各區(qū)域依次合并直到滿足終止準(zhǔn)則。(3)基于區(qū)域形狀決定區(qū)域的合并時可以利用對目標(biāo)形狀的檢測結(jié)果,常用兩種方法:第一種:把圖像分割成灰度固定的區(qū)域,設(shè)兩相鄰區(qū)域的周長為p1和p2,把兩區(qū)域共同邊界線兩側(cè)的灰度差小于給定值的那部分設(shè)為L,如果(t1位預(yù)定閾值) 則合并兩區(qū)域。第二種:把圖像分割成灰度固定的區(qū)域,設(shè)兩鄰接區(qū)域的共同邊界長度為B,把兩區(qū)域的共同邊界線兩側(cè)灰度差小于給定值的那部分長度設(shè)為L,如果(t2為預(yù)定閾值) 則合并。本文采用第一種生長準(zhǔn)則是基于灰度差。由種子點出發(fā),在進(jìn)行了預(yù)處理后的瞳孔圖像中找出瞳孔區(qū)域。本文使用區(qū)域生長方法,能夠處理發(fā)生了病變的不規(guī)則形狀的瞳孔,步驟如下:( 1) 定位種子點;( 2) 從種子點出發(fā),查找相鄰的點,判斷該點是否和種子點在同一個連通區(qū)域;( 3) 將該點的灰度值同種子點灰度值進(jìn)行比較,如果差值小于所設(shè)定的閾值,則將該點附加到這個區(qū)域中;( 4) 以新合并的點為新的種子點,重復(fù)步驟( 3) 直到結(jié)束。在預(yù)處理后圖像中進(jìn)行區(qū)域生長,將區(qū)域內(nèi)的點置為白色。圖 區(qū)域生長后的瞳孔4 瞳孔動態(tài)監(jiān)測系統(tǒng)的軟件設(shè)計 瞳孔動態(tài)監(jiān)測系統(tǒng)的模塊設(shè)計 視頻讀取模塊實現(xiàn)指定瞳孔視頻文件的讀取,并且顯示在屏幕上,以便于觀察其視頻的內(nèi)容,從而可以更好的進(jìn)一步選擇所需視頻的內(nèi)容。圖 視頻讀取流程圖 視頻處理模塊本模塊實現(xiàn)將視頻文件逐幀提取,并將提取到的圖片保存和處理,圖片處理的過程就是瞳孔檢測的過程,具體過如下:第一:將視頻文件按指定幀的位置逐幀提取并保存;第二:將每一幀進(jìn)行瞳孔檢測;第三:將瞳孔檢測后的幀保存;圖 視頻處理流程圖 畫曲線圖模塊根據(jù)計算瞳孔的像素數(shù)據(jù)來畫曲線圖,曲線圖的橫坐標(biāo)是幀的位置,縱坐標(biāo)是瞳孔的相對像素點數(shù)。圖 畫曲線圖流程圖 處理后的視頻查看模塊本文通過軟件自帶的控件來實現(xiàn)處理后的視頻文件的查看。圖 視頻文件查看模塊流程圖 軟件的具體實現(xiàn) 環(huán)境配置 C++。(1)全局配置:菜單ToolsOptionsDirectories:先設(shè)置lib路徑,選擇Library files,在下方填入路徑:D:\VC6\CVOpencv\OpenCV\lib然后選擇include files,在下方填入路徑: D:\VC6\VCOpen\OpenCV\cxcore\include D:\VC6\VCOpen\OpenCV\cv\include D:\VC6\VCOpen\OpenCV\cvaux\include D:\VC6\VCOpen\OpenCV\ml\include D:\VC6\VCOpen\OpenCV\otherlibs\highgui D:\VC6\VCOpen\OpenCV\otherlibs\cvcam\include。圖 OpenCV全局配置然后選擇source files,在下方填入路徑:D:\VC6\VCOpen\OpenCV\cv\srcD:\VC6\VCOpen\OpenCV\cxcore\srcD:\VC6\VCOpen\OpenCV\cvaux\srcD:\VC6\VCOpen\OpenCV\otherlibs\highguiD:\VC6\VCOpen\OpenCV\otherlibs\cvcam\src\windowsD:\VC6\VCOpen\OpenCV\otherlibs\_graphics\src,最后點擊“ok”,完成設(shè)置。圖 Source file的選擇(2)項目設(shè)置每創(chuàng)建一個將要使用OpenCV的VC Project,都需要給它指定需要的lib。菜單:ProjectSettings,然后將Setting for選為All Configurations,然后選擇右邊的link標(biāo)簽,在Object/library 。最后點擊“ok”,完成設(shè)置。 圖 項目設(shè)置(3)文件的添加當(dāng)在MFC中那個文件中用到OpenCV中的類及操作函數(shù)時需要添加頭文件include””,include””。 整體界面設(shè)計界面有四個區(qū)域,第一個區(qū)域是視頻文件的讀取區(qū)域,第二個區(qū)域是視頻文件處理區(qū)域,第三個區(qū)域是查看處理后的視頻區(qū)域,第四個區(qū)域是曲線圖顯示區(qū)域。圖 整體界面 視頻讀取模塊的具體實現(xiàn)由于Visual C++,且是非壓縮式的文件,并且MFC沒有播放視頻文件的類,故需要自己封裝此類,來解決播放問題。自己封裝Video類來實現(xiàn)此功能。,需要安裝解碼器,來解決壓縮格式視頻文件的播放。自己封裝的類如下:class Video : public CDialog {public: Video()。 int OpenVideo(CString FilePath,HDC hdc,CRect rect)。 //打開FilePath視頻文件,并設(shè)置好顯示區(qū)域等參數(shù) void CloseFile()。 //關(guān)閉播放文件 void PlayVideo(int frame_pos)。 //播放frame_pos幀視頻 void PauseVideo()。 //暫停播放 void StopVideo()。 //停止播放 int GetPlaySpeed()。 //得到視頻文件的播放速度 bool PickSomeFrames(CString filename, int start, int end,CString savePath)。virtual ~Video()。public: CvvImage m_showimage。 //CvvImage對象,用于顯示幀到控件 IplImage *m_pframe。 //獲取幀 CvCapture *m_pcapture。 //捕獲 CString m_filepath。 //文件路徑 CRect m_rect。 //播放區(qū)域 HDC m_hdc。 //用于顯示幀圖像的句柄 bool m_isplay。 //判斷是否播放中 int m_framepos。 //幀位置 int m_totalframes。 //幀總數(shù) int m_fps。 UINT m_timer。 //定時器 int m_speed。 //播放速度}。具體的操作代碼在附錄C中。 視頻處理模塊的具體實現(xiàn)視頻處理模塊是將提取的幀,逐幀進(jìn)行處理,再將處理后的幀保存。處理模塊中涉及到種子點的定位和瞳孔圖片的預(yù)處理以及區(qū)域生長算法。種子點的算法實現(xiàn)如下:CvPoint zhongzidiandefond(IplImage* pimg,int **a){ int* xp=ivector(0,pimgwidth)。 int *yp=ivector(0,pimgheight)。 CvPoint center。 { for(int i=0。ipimgwidth。i++) { xp[i]=0。 for(int j=0。jpimgheight。j++) if(a[j][i]==0) xp[i]++。 } } 。 for(int k=0。kpimgheight。k++) { yp[k]=0。 for(int j=0。jpimgwidth。j++) { if(a[k][j]==0) yp[k]++。 } } int maxx=xp[0]。 int xmax=0。 int ymax=0。 int maxy=yp[0]。 for(int l=0。lpimgwidth。l++) if(xp[l]=maxx){maxx=xp[l]。xmax=l。} for(int m=0。mpimgheight。m++) if(yp[m]=maxy){maxy=yp[m]。ymax=m。} =xmax。
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1