專利名稱:運動模糊數字圖像自動復原方法
技術領域:
本發明屬于計算機應用技術領域,涉及到一種圖像處理方法,具體地說是一種運動模糊數字圖像自動復原方法。
背景技術:
數碼照相機和老式膠片式照相機都存在著照片模糊的現象。由于當前數碼照相機正取代老式膠片式照相機,因此數碼照片的復原技術正逐步受到人們的重視。
對于數碼照片的模糊現象,現普遍采用的方法是通過人眼對數碼照片的觀察,大致確定出數碼照片上像素地移動方向及移動像素數,在移動的方向上左右反復移動像素,直至人認為其清晰度為最好為止。
發明內容
本發明采用了計算機自動復原方法,即利用計算機自動識別出圖像文件上像素的移動方向及移動像素,自動按像素的移動方向及移動像素數進行圖像像素的移動,從而實現圖像文件的復原,目的是提供一種運動模糊數字圖像自動復原方法。
根據計算機所要執行圖像復原的任務預先編制程序,并將程序存入該計算機程序存貯器中。
預先編制的程序包括下列步驟
讀入圖像文件;
分析圖像;
找到圖像中最具有突出特征的像素;
確定像素周圍灰度值漸變的區域;
根據(10~30)個像素周圍灰度值漸變的區域確定各像素的偏移量;
在(10~30)個像素偏移量中找出偏移量值相同的(5~15)像素;
在偏移量值相同的(5~15)像素所在的漸變區域中確定旋轉角度;
根據旋轉角度及偏移量,按加權平均的方法對圖像進行像素級加權平均累加;
根據像素級按加權平均累加結果將像素進行旋轉和移動,產生復原后的圖像。
計算機在預先存入存貯器中的程序指令下進行運動模糊數字圖像自動復原方法包括下列步驟
用于讀入圖像文件的裝置讀入圖像文件;
用于掃描圖像文件的裝置對圖像文件進行整幅掃描;
用于分析圖像文件的裝置通過分析圖像文件確定圖像文件中具有最突出特征的(10~30)個像素;
用于掃描圖像文件的裝置對圖像文件中具有突出特征的(10~30)個像素的周圍進行橫、縱向掃描;
用于分析圖像文件的裝置確定像素周圍灰度值漸變的區域,并對像素周圍灰度值漸變區域進行比較;
用于計算像素旋轉角度及偏移量的裝置,計算這些像素旋轉角度及偏移量;
用于運算的裝置根據像素的旋轉角度及偏移量對圖像進行像素級加權平均累加;
用于移動像素的裝置根據像素按加權平均累加結果將像素進行旋轉和移動,產生復原后的圖像。
本發明的有益效果本發明采用計算機自動識別出圖像文件上像素的移動方向及像素數,自動按像素的移動方向及移動像素數進行圖像像素的移動,從而實現圖像文件的自動復原,復原方法簡便、快捷。
圖1為本發明程序流程圖。也是說明書摘要附圖。
圖2為本發明實施例程序流程圖。
具體實施例方式
本發明針對數碼照片的模糊現象采用計算機復原方法,根據計算機所要執行圖像復原的任務預先編制程序,并將程序存入該計算機程序存貯器中。該計算機選用內存大于等于128M的計算機。
預先編制的程序包括下列步驟
讀入數碼照片;
分析數碼照片;
找到數碼照片中十個比較亮的點和十個比較暗的點作為像素點;
對數碼照片中十個比較亮的像素點和十個比較暗的像素點的周圍進行橫、縱向掃描;
確定這20個像素點周圍灰度值漸變的區域;
根據這20個像素點周圍灰度值漸變的區域確定各像素的偏移量;
在這20個像素點的偏移量中找出偏移量值相同的5個像素點;
在偏移量值相同的5像素點所在的漸變區域中確定旋轉角度;
根據旋轉角度及偏移量,按加權平均的方法對圖像進行像素級加權平均累加;
根據像素級按加權平均累加結果將像素進行旋轉和移動,產生復原后的圖像。
程序中讀圖像數據步驟源程序如下
void CBmpDlgOnReadbmpButton() { //TODOAdd your control notification handler code here int nSize; CDC*pDC=GetDC(); CFileDialog dlg(TRUE,″bmp″,″*.bmp″); if(dlg.DoModal()==FALSE) AfxMessageBox(″讀取BMP位圖文件失敗″); CFile file; if(file.Open(dlg.GetFileName(),CFilemodeRead)) { BITMAPFILEHEADER bmfh; UINT number=file.Read(&bmfh,sizeof(BITMAPFILEHEADER)); if(number!=sizeof(BITMAPFILEHEADER)) AfxMessageBox(″讀取BMP位圖文件大小失<!-- SIPO <DP n="3"> --><dp n="d3"/>敗″); if(bmfh.bfType!=0x4d42) AfxMessageBox(″讀取的位圖不是BMP位圖″); nSize=bmfh.bfOffBits-sizeof(BITMAPFILEHEADER); m_lpBMIH=(LPBITMAPINFOHEADER)new BYTE[nSize]; file.Read(m_lpBMIH,nSize); if((m_lpBMIH->biBitCount)!=0x08) AfxMessageBox(″不支持彩色BMP位圖″); m_lpImage=new BYTE[m_lpBMIH->biSizeImage]; file.Read(m_pImage,m_lpBMIH->biSizeImage); DrawImage(); } } void CBmpDlgHistogram(BYTE*Array,int Width,int Height,int OffLeft,int OffTop) { //nImgWidth=768; //nImgHeight=576; int i=0; for(i=0;i<256;i++) { HistogramArray[i]=0; } for(i=OffTop;i<(OffTop+Height);i++) { for(int j=OffLeft;j<(OffLeft+Width);j++) { HistogramArray[Array[i*nImgWidth+j]]++; } } }
程序中顯示圖像數據步驟源程序如下
void CBmpDlgDrawImage() { CDC*pDC=GetDC(); pDC->SetStretchBltMode(COLORONCOLOR); StretchDIBits(pDC->GetSafeHdc(), 0, 0, m_lpBMIH->biWidth, m_lpBMIH->biHeight, 0,<!-- SIPO <DP n="4"> --><dp n="d4"/> 0, m_lpBMIH->biWidth, m_lpBMIH->biHeight, m_lpImage, (LPBITMAPINFO)m_lpBMIH, DIB_RGB_COLORS, SRCCOPY); ReleaseDC(pDC); }
計算機在預先存入存貯器中的程序指令下進行運動模糊數碼照片自動復原方法包括下列步驟
用于讀入圖像文件的裝置讀入數碼照片
用于掃描圖像文件的裝置對數碼照片進行整幅掃描;
用于分析圖像文件的裝置通過分析數碼照片確定出數碼照片中十個比較亮的點和十個比較暗的點作為像素;
用于掃描圖像文件的裝置對數碼照片中十個比較亮的點和十個比較暗的點的周圍進行橫、縱向掃描;
用于計算像素旋轉角度及偏移量的裝置,計算這些像素旋轉角度及偏移量;
用于運算的裝置根據像素的旋轉角度及偏移量對圖像進行像素級加權平均累加;
用于移動像素的裝置根據像素按加權平均累加結果將像素進行旋轉和移動,產生復原后的圖像。
權利要求
1.一種運動模糊數字圖像自動復原方法,其特征是采用下列步驟
用于讀入圖像文件的裝置讀入圖像文件;
用于掃描圖像文件的裝置對圖像文件進行整幅掃描;
用于分析圖像文件的裝置通過分析圖像文件確定圖像文件中具有最突出特征的(10~30)個像素;
用于掃描圖像文件的裝置對圖像文件中具有突出特征的(10~30)個像素的周圍進行橫、縱向掃描;
用于分析圖像文件的裝置確定像素周圍灰度值漸變的區域,并對像素周圍灰度值漸變區域進行比較;
用于計算像素旋轉角度及偏移量的裝置,計算這些像素旋轉角度及偏移量;
用于運算的裝置根據像素的旋轉角度及偏移量對圖像進行像素級加權平均累加;
用于移動像素的裝置根據像素按加權平均累加結果將像素進行旋轉和移動,產生復原后的圖像。
2.根據權利要求1所述運動模糊數字圖像自動復原方法,其特征是采用下列步驟
用于讀入圖像文件的裝置讀入數碼照片
用于掃描圖像文件的裝置對數碼照片進行整幅掃描;
用于分析圖像文件的裝置通過分析數碼照片確定出數碼照片中十個比較亮的點和十個比較暗的點作為像素;
用于掃描圖像文件的裝置對數碼照片中十個比較亮的點和十個比較暗的點的周圍進行橫、縱向掃描;
用于計算像素旋轉角度及偏移量的裝置,計算這些像素旋轉角度及偏移量;
用于運算的裝置根據像素的旋轉角度及偏移量對圖像進行像素級加權平均累加;
用于移動像素的裝置根據像素按加權平均累加結果將像素進行旋轉和移動,產生復原后的圖像。
全文摘要
一種屬于計算機應用技術領域的運動模糊數字圖像自動復原方法包括下列步驟讀入圖像文件;對圖像文件進行整幅掃描;通過分析圖像文件確定圖像文件中具有最突出特征的像素;對圖像文件中具有突出特征的像素的周圍進行橫、縱向掃描;確定像素周圍灰度值漸變的區域,并對像素周圍灰度值漸變區域進行比較;計算這些像素旋轉角度及移動距離;對圖像進行像素級加權平均累加;按加權平均累加結果將像素進行旋轉和移動,產生復原后的圖像。本發明采用計算機自動識別出圖像文件上像素的移動方向及像素數,自動按像素的移動方向及移動像素數進行圖像像素的移動,從而實現圖像文件的自動復原,復原方法簡便、快捷。
文檔編號G06T5/00GK1728181SQ20051001652
公開日2006年2月1日 申請日期2005年1月13日 優先權日2005年1月13日
發明者張云峰, 韓廣良 申請人:中國科學院長春光學精密機械與物理研究所