专利名称:运动模糊数字图像自动复原方法
技术领域:
本发明属于计算机应用技术领域,涉及到一种图像处理方法,具体地说是一种运动模糊数字图像自动复原方法。
背景技术:
数码照相机和老式胶片式照相机都存在着照片模糊的现象。由于当前数码照相机正取代老式胶片式照相机,因此数码照片的复原技术正逐步受到人们的重视。
对于数码照片的模糊现象,现普遍采用的方法是通过人眼对数码照片的观察,大致确定出数码照片上像素地移动方向及移动像素数,在移动的方向上左右反复移动像素,直至人认为其清晰度为最好为止。
发明内容
本发明采用了计算机自动复原方法,即利用计算机自动识别出图像文件上像素的移动方向及移动像素,自动按像素的移动方向及移动像素数进行图像像素的移动,从而实现图像文件的复原,目的是提供一种运动模糊数字图像自动复原方法。
根据计算机所要执行图像复原的任务预先编制程序,并将程序存入该计算机程序存贮器中。
预先编制的程序包括下列步骤
读入图像文件;
分析图像;
找到图像中最具有突出特征的像素;
确定像素周围灰度值渐变的区域;
根据(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日
发明者张云峰, 韩广良 申请人:中国科学院长春光学精密机械与物理研究所