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

正文內(nèi)容

畢業(yè)論文-瞳孔動(dòng)態(tài)監(jiān)測系統(tǒng)的研究與開發(fā)-資料下載頁

2025-01-16 22:44本頁面
  

【正文】 士學(xué)位論文 20 在預(yù)處理后圖像中進(jìn)行區(qū)域生長,將區(qū)域內(nèi)的點(diǎn)置為白色,得到圖 。 圖 區(qū)域生長后的瞳孔 沈陽理工大學(xué)學(xué)士學(xué)位論文 21 4 瞳孔動(dòng)態(tài)監(jiān)測系統(tǒng)的軟件設(shè)計(jì) 瞳孔動(dòng)態(tài)監(jiān)測系統(tǒng)的模塊設(shè)計(jì) 視頻讀取模塊 實(shí)現(xiàn)指定瞳孔視頻文件的讀取,并且顯示在屏幕上,以便于觀察其視頻的內(nèi)容,從而可以更好的進(jìn)一步選擇所需視頻的內(nèi)容。視頻讀取模塊流程圖如圖 所示。 圖 視頻讀取流程圖 視頻處理模塊 本模塊實(shí)現(xiàn)將視頻文件逐幀提取,并將提取到的圖片保存和處理,圖片處理的過程就是瞳孔檢測的過程,具體過如下: 第一:將視頻文件按指定幀的位置逐幀提取并保存; 第二:將每一幀進(jìn)行瞳孔檢測; 第三:將瞳孔檢測后的幀保存; 視頻處理流程圖如圖 所示 指 定 視 頻 文 件開 始打 開 視 頻 文 件逐 幀 播 放幀 是 否 結(jié) 束播 放 結(jié) 束否是沈陽理工大學(xué)學(xué)士學(xué)位論文 22 圖 視頻處理流程圖 畫曲線圖模塊 根據(jù)計(jì)算瞳孔的像素?cái)?shù)據(jù)來畫曲線圖,曲線圖的橫坐標(biāo)是幀的位置,縱坐標(biāo)是瞳孔的相對像素點(diǎn)數(shù),流程圖如圖 所示。 圖 畫曲線圖流程圖 視 頻 文 件指 定 提 取 幀 的 位 置幀 提 取圖 像 預(yù) 處 理選 定 閥 值 , 二 值 化經(jīng) 垂 直 , 水 平 投 影找 到 種 子 點(diǎn)進(jìn) 行 區(qū) 域 生 長 , 確 定 瞳 孔 區(qū) 域計(jì) 算 瞳 孔 區(qū) 域 的 像 素 數(shù) 并 保 存 其 數(shù) 據(jù)保 存 處 理 后 的 幀幀 提 取 是 否 結(jié) 束視 頻 處 理 結(jié) 束是否保 存 的 每 幀 瞳 孔 像 素 點(diǎn) 數(shù)坐 標(biāo) 轉(zhuǎn) 換畫 瞳 孔 像 素 點(diǎn) 數(shù) 曲 線結(jié) 束確 定 橫 縱 坐 標(biāo) 單 位沈陽理工大學(xué)學(xué)士學(xué)位論文 23 處理后的視頻查看模塊 本文通過軟件自帶的控件來實(shí)現(xiàn)處理后的視頻文件的查看,流程圖如圖 所示。 圖 視頻文件查看模塊流程圖 軟件的具體實(shí)現(xiàn) 環(huán)境配置 在 Visual 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 配置結(jié)果如圖 所示。 處 理 后 的 幀幀 合 成 視 頻 文 件幀 是 否 結(jié) 束查 看 合 成 的 視 頻 文 件結(jié) 束是否沈陽理工大學(xué)學(xué)士學(xué)位論文 24 圖 OpenCV 全局配置 然后選擇 source files,在下方填入路徑: D:\VC6\VCOpen\OpenCV\cv\src D:\VC6\VCOpen\OpenCV\cxcore\src D:\VC6\VCOpen\OpenCV\cvaux\src D:\VC6\VCOpen\OpenCV\otherlibs\highgui D:\VC6\VCOpen\OpenCV\otherlibs\cvcam\src\windows D:\VC6\VCOpen\OpenCV\otherlibs\_graphics\src 如圖 所示,最后點(diǎn)擊“ ok”,完成設(shè)置。 圖 Source file 的選擇 沈陽理工大學(xué)學(xué)士學(xué)位論文 25 ( 2)項(xiàng)目設(shè)置 每創(chuàng)建一個(gè)將要使用 OpenCV 的 VC Project,都需要給它指定需要的 lib。菜單:ProjectSettings,然后將 Setting for 選為 All Configurations,然后選擇右邊的 link 標(biāo)簽,在 Object/library modules 附加上 ,如圖 所示。最后點(diǎn)擊“ ok”,完成設(shè)置。 圖 項(xiàng)目設(shè)置 ( 3)文件的添加 當(dāng)在 MFC 中那個(gè)文件中用到 OpenCV 中的類及操作函數(shù)時(shí)需要添加頭文件include” ”, include” ”。 整體界面設(shè)計(jì) 界面有四個(gè)區(qū)域,第一個(gè)區(qū)域是視頻文件的讀取 區(qū)域,第二個(gè)區(qū)域是視頻文件處理區(qū)域,第三個(gè)區(qū)域是查看處理后的視頻區(qū)域,第四個(gè)區(qū)域是曲線圖顯示區(qū)域。界面如圖 所示。 圖 整體界面 沈陽理工大學(xué)學(xué)士學(xué)位論文 26 視頻讀取模塊的具體實(shí)現(xiàn) 由于 Visual C++只能播放 .avi 格式的視頻文件,且是非壓縮式的文件,并且 MFC 沒有播放視頻文件的類,故需要自己封裝此類,來解決播放問題。自己封裝 Video 類來實(shí)現(xiàn)此功能。由于 MFC 播放視頻文件格式是 .avi 且是無壓縮式的故播放壓縮的視頻文件需要用解碼器來實(shí)現(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ù) 沈陽理工大學(xué)學(xué)士學(xué)位論文 27 int m_fps。 UINT m_timer。 //定 時(shí)器 int m_speed。 //播放速度 }。 具體的操作代碼在附錄 C 中。 視頻處理模塊的具體實(shí)現(xiàn) 視頻處理模塊是將提取的幀,逐幀進(jìn)行處理,再將處理后的幀保存。處理模塊中涉及到種子點(diǎn)的定位和瞳孔圖片的預(yù)處理以及區(qū)域生長算法。 種子點(diǎn)的算法實(shí)現(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]++。 沈陽理工大學(xué)學(xué)士學(xué)位論文 28 } } 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。 =ymax。 return center。 } 圖片的灰度化實(shí)現(xiàn)如下: IplImage* AveGRAY(IplImage*in,IplImage*out) //灰度化函數(shù) { for (int y=0。yinheight。y++) { char *p=(char*)(inimageData+y*inwidthStep)。 for (int x=0。xinwidth。x++) { int temp=p[3*x]*+p[3*x + 1]*+p[3*x + 2]*。 outimageData[y*inwidth+x]=temp。 } } return(out)。 } 由于用灰度公式實(shí)現(xiàn)的灰度化效果沒有 OpenCV 中 cvCvtColor()函數(shù)的效果好,故用本文用 cvCvtColor()函數(shù)實(shí)現(xiàn)圖片的灰度化。 cvCvtColor()函數(shù)的具體用法在附錄 D中。 沈陽理工大學(xué)學(xué)士學(xué)位論文 29 瞳孔預(yù)處理包括腐蝕,膨脹,二值化等操作。膨脹的卷積圖如圖 所示。 圖 膨脹卷積圖 注意的是源圖像不可與目標(biāo)圖像設(shè)為同一個(gè),否則第三行 和第四行后四個(gè)將全被標(biāo)記。這在 OPENCV 的程序中也得到了體現(xiàn)。 上圖小模板的原點(diǎn)在 (0,1)處,然后與源圖像進(jìn)行模板卷積得到了結(jié)果。 圖 腐蝕模板卷積圖 膨脹是在模板卷積的基礎(chǔ)上做或運(yùn)算,腐蝕則是做與運(yùn)算。如上圖,盡在最后涂黑的兩個(gè)點(diǎn)與模板原點(diǎn)(標(biāo)十字 )的點(diǎn)對齊,然后卷積后才可以得到三個(gè)‘ 1’,所以與后是 1,其他的與運(yùn)算后都是 0。 由于自己編寫腐蝕與膨脹原理的函數(shù),使用處理時(shí)效果和效率太差,故利用 OpenCV的開源代碼中的 API 接口來實(shí)現(xiàn)。通過查看 OpenCV 使用手冊可知, OpenCV 中腐蝕與膨脹算法的 API 接口函數(shù)如下: CVAPI(void) cvErode( const CvArr* src, CvArr* dst,IplConvKernel* element CV_DEFAULT(NULL), int iterations CV_DEFAULT(1) ); CVAPI(void) cvDilate( const CvArr* src, CvArr* dst,IplConvKernel* element CV_DEFAULT(NULL),int iterations CV_DEFAULT(1) ); 腐蝕與膨脹算法中在需要?jiǎng)?chuàng)建自己的結(jié)構(gòu)元素來進(jìn)行腐蝕和膨脹,具體的腐蝕和膨沈陽理工大學(xué)學(xué)士學(xué)位論文 30 脹函數(shù)的用法在附錄 D 中。 二值化的實(shí)現(xiàn): 根據(jù)本文的二值化原理可知,二值化就是進(jìn)行圖像的掃描并根據(jù)二值化原理設(shè)置圖像的像素值的過程,查看 OpenCV 的使用手冊可知二值化的 API 接口函數(shù)如下: CVAPI(void) cvThreshold( const CvArr* src, CvArr* dst, double threshold, double max_value, int threshold_type ); 二值化的關(guān)鍵是閾值的選擇,閾值的選擇需要通過灰度直方圖來選擇。二值化函數(shù)的詳細(xì)使用法在附錄 D 中。 區(qū)域生長法的實(shí)現(xiàn): 根據(jù)本文的分析可知本文采用灰度差來進(jìn)行實(shí)現(xiàn)區(qū)域生長法, 采用 OpenCV 中 API接口函數(shù)中區(qū)域生長函數(shù),此函數(shù)如下: CVAPI(void) cvFloodFill( CvArr* image, CvPoint seed_point
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1