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

正文內(nèi)容

圖像降噪技術(shù)研究背景及意義畢業(yè)論文(編輯修改稿)

2025-07-25 19:32 本頁面
 

【文章內(nèi)容簡介】 圖 圖像讀取流程圖 圖像顯示得到文件的完整路徑名打開位圖文件讀取 BITMAPFILEHEADER 結(jié)構(gòu)文件是 BMP 格式嗎?計算得到 bmp 文件除文件頭以外的大小把 bmp 文件除文件頭以外的部分讀入內(nèi)存返回 DIB 句柄結(jié)束開始沈陽理工大學(xué)學(xué)士學(xué)位論文6 N Y N 圖 圖像顯示流程圖 程序源代碼 圖像讀取通過 ReadDIBFile()函數(shù)實現(xiàn)對函數(shù)的讀取,參數(shù) CFileamp。 file,返回值 HDIB。HDIB CDIB::ReadDIBFile(CFileamp。 file){BITMAPFILEHEADER bmfHeader。開始設(shè)定顯示參數(shù),顯示位圖恢復(fù)原調(diào)色板結(jié)束從 DOC 對象中得到位圖數(shù)據(jù)起始位置指針,并得到圖像的寬、高等信息把新創(chuàng)建的調(diào)色板作為設(shè)備環(huán)境的調(diào)色板,并保留原調(diào)色板使用文件中顏色表數(shù)據(jù)創(chuàng)建調(diào)色板位圖是 8 位?沈陽理工大學(xué)學(xué)士學(xué)位論文7HDIB hDIB。LPBYTE lpDIB。// 獲取 DIB(文件)長度(字節(jié))DWORD dwBitsSize = ()。// 嘗試讀取 DIB 文件頭if (((LPBYTE)amp。bmfHeader, sizeof(bmfHeader)) != sizeof(bmfHeader)){// 大小不對,返回 NULL。return NULL。}// 判斷是否是 DIB 對象,檢查頭兩個字節(jié)是否是 BMif ( != DIB_HEADER_MARKER){// 非 DIB 對象,返回 NULL。return NULL。}// 為 DIB 分配內(nèi)存hDIB = (HDIB) ::GlobalAlloc(GMEM_MOVEABLE | GMEM_ZEROINIT, dwBitsSize)。if (hDIB == 0){// 內(nèi)存分配失敗,返回 NULL。return NULL。}// 鎖定lpDIB = (LPBYTE) ::GlobalLock((HGLOBAL) hDIB)。沈陽理工大學(xué)學(xué)士學(xué)位論文8// 讀象素if ((lpDIB, dwBitsSize sizeof(BITMAPFILEHEADER)) !=dwBitsSize sizeof(BITMAPFILEHEADER) ){// 大小不對。// 解除鎖定::GlobalUnlock((HGLOBAL) hDIB)。// 釋放內(nèi)存::GlobalFree((HGLOBAL) hDIB)。// 返回 NULL。return NULL。}// 解除鎖定::GlobalUnlock((HGLOBAL) hDIB)。 // 返回 DIB 句柄return hDIB。} 圖像保存通過 ReadDIBFile()函數(shù)實現(xiàn)將 DIB 保存到指定文件中,參數(shù) HDIB hDib、CFileamp。 file,返回值 BOOL.BOOL CDIB::SaveDIB(HDIB hDib, CFileamp。 file){// Bitmap 文件頭沈陽理工大學(xué)學(xué)士學(xué)位論文9BITMAPFILEHEADER bmfHdr。// 指向 BITMAPINFOHEADER 的指針LPBITMAPINFOHEADER lpBI。if (hDib == NULL){// 如果 DIB 為空,返回 FALSEreturn FALSE。}// 讀取 BITMAPINFO 結(jié)構(gòu),并鎖定lpBI = (LPBITMAPINFOHEADER) ::GlobalLock((HGLOBAL) hDib)。if (lpBI == NULL){// 為空,返回 FALSEreturn FALSE。}// 判斷是否是 DIBif (!IS_WIN30_DIB(lpBI)){// 不支持其它類型的 DIB 保存// 解除鎖定::GlobalUnlock((HGLOBAL) hDib)。// 返回 FALSEreturn FALSE。沈陽理工大學(xué)學(xué)士學(xué)位論文10}// 填充文件頭// 文件類型BM = DIB_HEADER_MARKER。// 計算 DIB 大小時,最簡單的方法是調(diào)用 GlobalSize()函數(shù)。但是全局內(nèi)存大小并// 不是 DIB 真正的大小,它總是多幾個字節(jié)。這樣就需要計算一下 DIB 的真實大小。// 文件頭大小+顏色表大小// (BITMAPINFOHEADER 和 BITMAPCOREHEADER 結(jié)構(gòu)的第一個 DWORD 都是該結(jié)構(gòu)的大?。〥WORD dwDIBSize = *(LPDWORD)lpBI + PaletteSize((LPBYTE)lpBI)。// 計算圖像大小if ((lpBIbiCompression == BI_RLE8) || (lpBIbiCompression == BI_RLE4)){// 對于 RLE 位圖,沒法計算大小,只能信任 biSizeImage 內(nèi)的值dwDIBSize += lpBIbiSizeImage。}else{// 大小為 Width * HeightDWORD dwBmBitsSize = WIDTHBYTES((lpBIbiWidth)*((DWORD)lpBIbiBitCount)) * lpBIbiHeight。// 計算出 DIB 真正的大小dwDIBSize += dwBmBitsSize。沈陽理工大學(xué)學(xué)士學(xué)位論文11// 更新 biSizeImage(很多 BMP 文件頭中 biSizeImage 的值是錯誤的)lpBIbiSizeImage = dwBmBitsSize。}// 計算文件大?。篋IB 大小+BITMAPFILEHEADER 結(jié)構(gòu)大小 = dwDIBSize + sizeof(BITMAPFILEHEADER)。// 兩個保留字 = 0。 = 0。// 計算偏移量 bfOffBits,它的大小為 Bitmap 文件頭大?。獶IB 頭大?。伾泶笮?= (DWORD)sizeof(BITMAPFILEHEADER) + lpBIbiSize + PaletteSize((LPBYTE)lpBI)。// 嘗試寫文件TRY{// 寫文件頭((LPBYTE)amp。bmfHdr, sizeof(BITMAPFILEHEADER))。// 寫 DIB 頭和象素(lpBI, dwDIBSize)。}CATCH (CFileException, e){// 解除鎖定沈陽理工大學(xué)學(xué)士學(xué)位論文12::GlobalUnlock((HGLOBAL) hDib)。// 拋出異常THROW_LAST()。}END_CATCH// 解除鎖定::GlobalUnlock((HGLOBAL) hDib)。// 返回 TRUEreturn TRUE。}沈陽理工大學(xué)學(xué)士學(xué)位論文133 噪聲的添加 基本原理定義 Saltnoising(HDIB hDIB)類,用以封裝實現(xiàn)添加噪聲的相關(guān)函數(shù)。設(shè)置指向源圖像的指針,設(shè)置表示行、列的循環(huán)變量 i,j。在加噪過程中,存儲標(biāo)準(zhǔn)圖像象素信息后,生成一個為隨機種子,可以為任意數(shù)或系統(tǒng)時間。當(dāng) dTemp31500 時,指向源圖像倒數(shù)第 j 行,第 i 個象素的指針,將圖像中當(dāng)前點置為黑。即完成一次噪聲的添加。 實現(xiàn)步驟(1)取得圖像大小、數(shù)據(jù)區(qū),并把數(shù)據(jù)區(qū)復(fù)制到緩沖區(qū);(2)循環(huán)取得各點像素值;(3)若產(chǎn)生的隨機數(shù)大于特定值,把該點置黑;(4)把緩沖區(qū)中改動的數(shù)據(jù)復(fù)制到原數(shù)據(jù)區(qū)中。 程序源代碼 添加響應(yīng)函數(shù)CDIBview 中添加“ 加入椒鹽噪聲 ”的響應(yīng)函數(shù):oid CDIPSView::OnAddnoisingSalt() {// TODO: Add your mand handler code hereCDIPSDoc* pDoc=GetDocument()。CAddNoising addSALT。(pDocGetHDIB())。Invalidate()。pDocSetModifiedFlag(TRUE)。}沈陽理工大學(xué)學(xué)士學(xué)位論文14 添加成員函數(shù)建立 CaddNoising 類,其成員函數(shù)執(zhí)行具體操作:void CAddNoising::Saltnoising(HDIB hDIB){// 指向源圖像的指針LPSTR lpSrc。//循環(huán)變量long i。long j。// 圖像每行的字節(jié)數(shù)LONG lLineBytes。// 計算圖像每行的字節(jié)數(shù)LPBYTE lpDIB=(LPBYTE) ::GlobalLock((HGLOBAL) hDIB)。LPBYTE lpDIBBits。CDIB m_add。LONG lWidth=(lpDIB)。LONG lHeight=(lpDIB)。lpDIBBits=(lpDIB)。lLineBytes = WIDTHBYTES(lWidth * 8)。for(i=0。ilLineBytes。i++)//存儲標(biāo)準(zhǔn)圖像象素信息for(j=0。jlHeight。j++){BMP_stdData[i* lLineBytes+j]=*((BYTE *)lpDIBBits + lLineBytes * i + j)。}if ((lpDIB) != 8)沈陽理工大學(xué)學(xué)士學(xué)位論文15{//promptMessageBox(This program can only process 8bits39。 image., Prompt , MB_ICONINFORMATION | MB_OK)。//unlock::GlobalUnlock((HGLOBAL) hDIB)。}//生成偽隨機種子srand((unsigned)2)。int tem=0。//在圖像中加噪for (j = 0。j lHeight 。j++){for(i = 0。i lLineBytes 。i++){double dTemp。dTemp=rand()。if(dTemp31500){// 指向源圖像倒數(shù)第 j 行,第 i 個象素的指針lpSrc = (char *)lpDIBBits + lLineBytes * j + i。//圖像中當(dāng)前點置為黑*lpSrc = 0。// tem++。}}}沈陽理工大學(xué)學(xué)士學(xué)位論文16// char ctem[20]。// sprintf(ctem,噪聲象素點個數(shù)為:%d,tem)。// MessageBox(ctem)。} 輸出結(jié)果圖 原圖像沈陽理工大學(xué)學(xué)士學(xué)位論文17圖 加入椒鹽噪聲后的圖像沈陽理工大學(xué)學(xué)士學(xué)位論文184 均值濾波 基本原理所謂均值濾波實際上就是用均值替代原圖像中的各個像素值。均值濾波的方法如下:設(shè)被噪聲污染后的信號為 ,原始信號為 ,噪聲為()gt()ft,則 ()()gtftnt??。均值濾波公式如下:()nt1[1)()1)()]tgttmtgtm?????? ()經(jīng)過均值濾波后的圖像,可以看到噪聲明顯的被抑制了。下面推導(dǎo)均值濾波對抑制的原理。因為 ()()gtfnt?? ()等式兩邊取數(shù)學(xué)期望(即統(tǒng)計中) ,得()()tft ()如果噪聲椒鹽噪聲,則有 ()0nt? ()所以 ()()gtft?? ()按照如上的定義可知,因為出現(xiàn)的為椒鹽噪聲,其幅值基本相同,但是數(shù)據(jù)中,還存在一些點沒有噪聲,這樣,可以將未輸出的噪聲的點等同的認(rèn)為噪聲幅值為 0,這樣就有 ()nt? ()所以,經(jīng)過均值濾波之后, 中所包含的噪聲強度值低于 。()gt ()gt椒鹽噪聲的抑制,只是將某點出現(xiàn)的噪聲強度,讓周圍的數(shù)據(jù)平均分擔(dān)了。 實現(xiàn)方法根據(jù)上述對以為均值濾波的原理介紹,將其寬展到二維信號的處理,就可以事先對圖像噪聲的抑制。均值濾波方法是,對待處理的當(dāng)前像素,選擇一個模板,該模板為其近鄰的若干像沈陽理
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1