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

正文內(nèi)容

指紋識(shí)別系統(tǒng)—免費(fèi)畢業(yè)設(shè)計(jì)論文(參考版)

2024-12-03 02:55本頁(yè)面
  

【正文】 //no problem }} //創(chuàng)建小波濾波器類 CWFilter Fi。 tempR=lpData[cur+2]。 tempB=lpData[cur]。 x(int)biWidth。 y(int)biHeight。 i ++) { ImgData[i] = new short [biWidth]。 for(int i = 0。 //圖像矩陣坐標(biāo)與圖像數(shù)據(jù) int tempR, tempG, tempB, x, y, cur。 short **ImgData。 if(m_pTransfered==NULL)return。 unsigned long bmSize = biHeight * biAlign。 unsigned long biWidth = lpBitmapInfoHeaderbiWidth。 unsigned char *lpData = m_pBitmap + lpBitmapFileHeaderbfOffBits。 void CWvltDoc::OnFilterBlur() { // TODO: Add your mand handler code here //讀取數(shù)字圖像的文件頭,獲取圖像的屬性參數(shù) LPBITMAPINFOHEADER lpBitmapInfoHeader = (LPBITMAPINFOHEADER)(m_pBitmap+14)。圖 221 所示是“低通濾波 1”的小波 ID 定義。 } 濾波處理后的數(shù)據(jù)將通過(guò)指針傳遞給 CWvltDoc ,通過(guò)CWvltDoc::OnFilterBlur()函數(shù)完成最終濾波結(jié)果的顯示。 delete spTransData1。j++) { m_FilterData[i][j] = spTransData1[i][j]。i++) { for(int j=0。 for(i=0。 } } CWvltTrans *Trans。 j nWidth。 m_FilterData[i] = new short [nWidth]。 i ++) { spTransData0[i] = new short [nWidth]。 for(int i = 0。 spTransData1 = new short *[nHeight]。 spOriginData = pData。 圖 218 圖像的低通濾波 下面的函數(shù)實(shí)現(xiàn)了圖像的低通濾波處理: ( 1)函數(shù)描述: LPass_Filter 實(shí)現(xiàn)小波 變換的低通濾波,減少圖像的邊緣信息,使圖像更加平滑 ( 2)函數(shù)參數(shù): unsigned char **pData:圖像小波變換后的小波系數(shù)矩陣 int nHeight :圖像屬性參數(shù),數(shù)值為原始圖像的高度值 int nWidth :圖像屬性參數(shù),數(shù)值為原始圖像的寬度值 int nLayer :低通濾波器的濾波階數(shù),數(shù)值為小波變換的層數(shù) ( 3)函數(shù)返回值: 函數(shù)無(wú)返回值,小波系數(shù)參數(shù)是利用指針進(jìn)行調(diào)用 ( 4)函數(shù)代碼 void CWFilter::LPass_Filter(short **pData, int nHeight, int nWidth, int nLayer, int scale) { short **spOriginData, **spTransData0, **spTransData1。如果需要保留部分的邊緣信息,也可以將高頻帶的小波系數(shù)進(jìn)行衰減,而不去除它們。 為了保持圖像邊緣信息以及充分利用小波變換的多分辨率特性,在編程中采用了 3層小波變換。倘若是進(jìn)行低通濾波,那么可以通過(guò)保留 LL頻帶的數(shù)據(jù),而將高頻小波系數(shù)進(jìn)行有效的衰減。例如,需要削弱圖像水平方向上的毛刺或高頻信息,可以通過(guò)處理 HL 頻帶的小波系數(shù),而不必影像其他方向上的邊緣信息。 小波變換將原始圖像和變換系數(shù)之間建立了十分好的相關(guān)性。 基于小波變換的圖像濾波處理 圖像濾波處理是通過(guò)濾波器將指定頻帶的能量進(jìn)行有效的衰減而對(duì)于需要保留的頻帶能量進(jìn)行增強(qiáng)。由于經(jīng)過(guò)了小波系數(shù)的正規(guī)化處理,即等式的處理操作,所以系數(shù)的顯示能看出圖像的內(nèi)容。 小波系數(shù)的頻域分布 小波系數(shù)的空間分布同原始圖像的空間分布具有很好的對(duì)應(yīng)關(guān)系(如圖 29所示)。 圖 28 圖像的 3層小波變換 基于小波變換的 指紋圖像濾波處理 小波變換不同于傅立葉變換,小波系數(shù)與原始圖像存在著空間上的對(duì)應(yīng)關(guān)系,這樣對(duì)于濾波處理 來(lái)說(shuō)是十分有利的。 delete spTransData1。 //刪除臨時(shí)的數(shù)據(jù)空間 delete spOriginData。 m_pTransfered[cur+2]= (unsigned char)fTempBufforDisp。 //current pixel m_pTransfered[cur] = (unsigned char)fTempBufforDisp。 fTempBufforDisp/=(float)Diff。 fTempBufforDisp=MinPixVal。 x(int)biWidth。 y(int)biHeight。 } } //計(jì)算出小波系數(shù)的極值差 Diff=MaxPixValMinPixVal。 if(MinPixValspTransData1[y][x]) MinPixVal=spTransData1[y][x]。 x(int)biWidth。 y(int)biHeight。 MinPixVal=spTransData1[0][0]。 ~m_bFilter。 ~m_bTwice amp。 //允許圖像復(fù)員操作標(biāo)志 m_bTribl = TRUE。 spOriginData[biHeight1y][x]=(short)(*tempR+*tempG+*tempB)。 tempG=lpData[cur+1]。 x++) { cur = y*biAlign+3*x。 y++) { for( x=0。 //從設(shè)備的圖像緩存中獲取原始圖像的數(shù)據(jù) for(y=0。 m_WvltCoeff[i] = new short [biWidth]。 spTransData0[i] = new short [biWidth]。 i biHeight。 m_WvltCoeff = new short * [biHeight]。 spTransData0 = new short* [biHeight]。 short **spOriginData, **spTransData0, **spTransData1。 float fTempBufforDisp。 //圖像矩陣坐標(biāo)與像素?cái)?shù)據(jù) int x,y,cur。 if(m_pTransfered==NULL)m_pTransfered=(unsigned char*) malloc (bmSize)。 unsigned long biAlign = (biWidth*3+3)/4 *4。 unsigned long biHeight = lpBitmapInfoHeaderbiHeight。 LPBITMAPFILEHEADER lpBitmapFileHeader = (LPBITMAPFILEHEADER)m_pBitmap。 圖 27 消息 ID的定義 下 面來(lái)看一下圖像 3層小波變換的實(shí)現(xiàn),并完成小波系數(shù)的顯示。 iWidth_H=iWidth/2。 iWidth=iWidth1。 i++) {DWT_Once(pData,pTran0,pTran1,iHeight,iHeight_H,iWidth,iWidth_H,i,fr)。 //利用循環(huán)完 成兩次小波變換 for(i=1。 iHeight = nHeight。 //圖像屬性參數(shù)賦值 iWidth = nWidth。 pTran0 = spTransData0。 float fr = fRadius。 short **pData, **pTran0, **pTran1。這樣 LL 便如第一層小波變換一般分成 4 個(gè)頻帶,其中 LL仍然是下一層小波變換的數(shù)據(jù)源。 圖 26 一層小波變換的運(yùn)行結(jié)果 除了圖像的一層小波變換,很多應(yīng)用使用的是圖像的 3 層小波變換,下面將分析 3層小波變換的實(shí)現(xiàn)代碼。 delete spTransData1。 //刪除臨時(shí)的數(shù)據(jù)空間 delete spOriginData。 m_pTransfered[cur+2]= (unsigned char)fTempBufforDisp。 //current pixel m_pTransfered[cur] = (unsigned char)fTempBufforDisp。 fTempBufforDisp/=Diff。 fTempBufforDisp=MinPixVal。 x(int)biWidth。 y(int)biHeight。 }} Diff=MaxPixValMinPixVal。 if(MinPixValspTransData1[y][x]) MinPixVal=spTransData1[y][x]。 x(int)biWidth。 y(int)biHeight。 MinPixVal=spTransData1[0][0]。 ~m_bFilter。 ~m_bTwice amp。 //允許圖像復(fù)原操作標(biāo)志 m_bOnce = TRUE。 spOriginData[biHeight1y][x]=(short)(*tempR+*tempG+*tempB)。 tempG=lpData[cur+1]。 x++) { cur = y*biAlign+3*x。 y++) { for( x=0。 //從設(shè)備緩存中獲取原始圖像數(shù)據(jù) for(y=0。 m_WvltCoeff[i] = new short [biWidth]。 spTransData0[i] = new short [biWidth]。 i biHeight。 m_WvltCoeff = new short * [biHeight]。 spTransData0 = new short* [biHeight]。 short **spOriginData, **spTransData0, **spTransData1。 float fTempBufforDisp。 //圖像矩陣坐標(biāo)與像素?cái)?shù)據(jù) int x,y,cur。 if(m_pTransfered==NULL)m_pTransfered=(unsigned char*) malloc (bmSize)。 unsigned long biAlign = (biWidth*3+3)/4 *4。 unsigned long biHeight = lpBitmapInfoHeaderbiHeight。 LPBITMAPFILEHEADER lpBitmapFileHeader = (LPBITMAPFILEHEADER)m_pBitmap。 圖 24 菜單部分 圖 25 菜單的消息 ID 下面的代碼是關(guān)于實(shí)現(xiàn)圖像的一層小波變換及其小波系數(shù)的顯示。如果需要處理彩色圖像,可以通過(guò)分別對(duì) R、 G、 B分量進(jìn)行小波變換,然后將分量的小波系數(shù)進(jìn)行映射,這樣便能正確地顯示小波系數(shù)。下面來(lái)分析一下 CWvltDoc 的程序代碼,了解一下函數(shù)的傳遞和消息傳遞。 spTransData1[Trans_M+nHeight_H][Trans_N]/=fRadius。 Trans_MnHeight_H。 Trans_NnWidth。 spTransData1[Trans_M][nWidth_H+Trans_N] = spTransData1[Trans_M][nWidth_H +Trans_N]+Trans_Coeff0。 spTransData1[Trans_M][Trans_N] = spTransData1[Trans_M][Trans_N] +Trans_Coeff0。 Trans_MnHeight_H。
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1