图像增强汇总

1、  图像增强技术包括

1)    图像灰度变换方法

2)    直方图修正方法

3)    图像平滑处理

4)    图像尖锐化处理

5)    彩色处理技术

2、  图像增强技术基本上分为两大类:频域处理法和时域处理法。

3、  频域处理法的基础是卷积定理。它通过傅里叶变换改变频域,实现对图像的增强处理。

4、  空域法就是直接对图像中的像素进行处理,基本上是以灰度映射变换为基础的。所用的映射变换取决于增强的目的。

5、  灰度变换修整法有两种形式:灰度级校正和灰度级映射变换。

6、  灰度变换实现图像增强的两种最常用方法是线性和非线性灰度变换。其他常用的方法有图像求反,灰度切分等。

7、  直方图修整法是图像灰度级变换的最常用的一种方法。

8、  直方图修整法实现图像增强中最常用的一种方法就是直方图的均衡化或者称之为均匀化。

9、  图像平滑主要是为了消除噪声。

10、              图像的常见噪声主要有加性噪声、乘性噪声和量化噪声等。

11、              图像平滑包括空域法和频域法两大类,在空域法中,图像平滑的常用方法是采用均值滤波或中值滤波,而在频域法中则设计各种频率滤波器进行低通滤波处理。

12、              时域平滑算法中最常用的3种方法即消噪声掩模法、领域平均法、多图像平均法。

13、              消噪声掩模法:可用于消除随机相加噪声。

14、              领域平均法:可消除麻点状噪声。

15、              取阈值的领域平均法的基本原理:一个窗口如3x3窗口沿图像移动(逐行逐列),先求出窗口中除了待处理像元之外的全部像元灰度值的平均值。如果待处理像元灰度值与这个平均值之差的绝对值超过了某一预先确定的阈值,则该像元的灰度使用平均值代替;否则,保持该像元的灰度不变。

16、              多图像平均法:通过提高图像的信噪比,实现图像增强。

17、              一维中值滤波对数字图像进行处理可以直观地认为在图像画面中开一个一维的小窗口,它应该包含奇数个像素,按像素的灰度值从小到大排列起来,然后用中间灰度值来代替原排列的中间位置像素的灰度值。窗口然后从左到右移动,直到边界。窗口下移一行,再从左到右依次进行。

18、              图像锐化常采用的方法有微分运算和频域高通滤波法。一般先去除或减轻干扰噪声后,才能进行锐化处理。

19、              图像处理中最常用的微分方法是求梯度。常用的梯度算子有拉普拉斯(Laplacian)算子。

20、              常用的频域低通滤波器有4种形式:理想低通滤波器(ILPF)、巴特沃思(Buttorworth)低通滤波器(BLPF)、指数低通滤波器(ELPF)和梯形低通滤波器(TLPF)。

21、              频域的高通滤波是图像锐化处理中常用的一种方法。频域高通滤波器有4种形式:理想高通滤波器(IHPF)、巴特沃思高通滤波器(BHPF)、指数高通滤波器(EHPF)、梯形高通滤波器(THPF)。

图像的增强/////////////////////////////////直方图对话框构造函数; ZFT::ZFT(CWnd* pParent /*=NULL*/) : CDialog(ZFT::IDD, pParent)//ZFT为定义的用来显示直方图的对话框类; {  Width=Height=0;//对话框初始化阶段设置图像的宽和高为"0"; } ////////////////////////对话框重画函数; void ZFT::OnPaint() {  CRect rect;//矩形区域对象;  CWnd *pWnd;//得到图片框的窗口指针;  pWnd=GetDlgItem(IDC_Graphic);//得到ZFT对话框内的"Frame"控件的指针;  file://(IDC_Graphic为放置在对话框上的一个"Picture"控件,并讲类型设置为"Frame")。  pWnd->GetClientRect(&rect);//得到"Frame"控件窗口的"视"区域;  int i;  CPaintDC dc(pWnd);//得到"Frame"控件的设备上下文;  file://画直方图的x、y轴;  dc.MoveTo(0,rect.Height());  dc.LineTo(rect.Width(),rect.Height());  dc.MoveTo(0,rect.Height());  dc.LineTo(0,0);  file://画直方图,num[]是"ZFT"的内部数组变量,存放的是图像各个灰度级出现的概率;该数组的各个分量在  显示具体图像的直方图时设置;  for(i=0;iGetWindowRect(&rect);//获取pWnd窗口对象窗口区域位置;  file://屏幕坐标转换为客户区坐标;  ScreenToClient(&rect);  file://判断当前鼠标是否指在直方图内;  if(rect.PtInRect (point))  {   int x=point1.x-rect.left;   file://当前鼠标位置减去区域的起始位置恰好为当前鼠标所指位置所表示的灰度级;   string.Format("%d",x);   file://显示当前位置对应的图像的灰度级;   pWndText->SetWindowText((LPCTSTR)string);  }  CDialog::OnMouseMove(nFlags, point); } //////////////////////////////////////// void CDibView::OnImagehorgm() file://在程序的"视"类对象内处理显示图像直方图的函数; {  CDibDoc *pDoc=GetDocument();  HDIB hdib;  hdib=pDoc->GetHDIB();  BITMAPINFOHEADER *lpDIBHdr;//位图信息头结构指针;  BYTE *lpDIBBits;//指向位图像素灰度值的指针;  lpDIBHdr=( BITMAPINFOHEADER *)GlobalLock(hdib);//得到图像的位图头信息  lpDIBBits=(BYTE*)lpDIBHdr+sizeof(BITMAPINFOHEADER)+256*sizeof(RGBQUAD);  file://获取图像像素值  ZFT dialog;//直方图对话框模板对象;  int i,j;  int wImgWidth=lpDIBHdr->biWidth;  int wImgHeight=lpDIBHdr->biHeight;  file://a[]数组用来存放各个灰度级出现的概率;  float a[256];  for(i=0;i<256;i++)//初始化数组;  {     a[i]=0;  }  file://统计各个灰度级出现的次数;  for(i=0;i<wimgheight;i++)  {   for(j=0;j<wimgwidth;j++)   {    a[*(lpDIBBits+WIDTHBYTES(wImgWidth*8)*i+j)]++;   }   file://统计各个灰度级出现的概率;   for(i=0;i<256;i++)   {    a[i]=a[i]/(wImgHeight*wImgWidth);//得到每个灰度级的出现概率;    memcpy(dialog.num,a,256*sizeof(float));   }  }   dialog.DoModal();//显示直方图对话框;  }  return; } </wimgwidth;j++) </wimgheight;i++)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值