文档库 最新最全的文档下载
当前位置:文档库 › VC++实现图像处理

VC++实现图像处理

VC++实现图像处理
VC++实现图像处理

对于一个图像处理系统来说,可以将流程分为三个阶段,在获取原始图像后,首先是图像预处理阶段、第二是特征抽取阶段、第三是识别分析阶段。图像预处理阶段尤为重要,如果这阶段处理不好,后面的工作根本无法展开。

在实际应用中,我们的系统获取的原始图像不是完美的,例如对于系统获取的原始图像,由于噪声、光照等原因,图像的质量不高,所以需要进行预处理,以有利于提取我们感兴趣的信息。图像的预处理包括图像增强、平滑滤波、锐化等内容。图像的预处理既可以在空间域实现,也可以在频域内实现,我们主要介绍在空间域内对图像进行点运算,它是一种既简单又重要的图像处理技术,它能让用户改变图像上像素点的灰度值,这样通过点运算处理将产生一幅新图像。下面我们开始介绍与图像点运算的相关知识。

一、图像的直方图

图像直方图是图像处理中一种十分重要的图像分析工具,它描述了一幅图像的灰度级内容,任何一幅图像的直方图都包含了丰富的信息,它主要用在图象分割,图像灰度变换等处理过程中。从数学上来说图像直方图是图像各灰度值统计特性与图像灰度值的函数,它统计一幅图像中各个灰度级出现的次数或概率;从图形上来说,它是一个二维图,横坐标表示图像中各个像素点的灰度级,纵坐标为各个灰度级上图像各个像素点出现的次数或概率。如果不特别说明,本讲座中的直方图的纵坐标都对应着该灰度级在图像中出现的概率。我们的例子是在一个对话框中显示一个图像的直方图,为实现该目的,我们定义了一个名为"ZFT"的对话框类用来显示图像的直方图,具体实现代码和效果图如下(关于代码实现部分可以参考笔者2001

年在天极网上发表的一篇VC实现数字图像处理的文章):

//////////////////////////////////直方图对话框构造函数;

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;i<256;i++)//根据图像上的各个灰度级出现的概率,在坐标上对应的画出一根直线,从而各个表示各灰度级出现概率的直线构成了图像的直方图;

{

dc.MoveTo(i+1,rect.Height());

dc.LineTo (i+1,(rect.Height()-rect.Height()*num[i]*30));

file://此处num分量乘以"30"是为了放大个灰度级上对应的出现概率直线,增强显示效果;

}

}

////////////////////////////////////////////////////////

void ZFT::OnMouseMove(UINT nFlags, CPoint point)

{//OnMouseMove函数处理鼠标消息,显示当前鼠标所在直方图上的灰度值等信息;

CWnd *pWnd,*pWndText;//定义两个窗口对象;

CPoint point1;//定义个一个点对象;

point1=point;//存放当前鼠标的位置信息;

CRect rect;//矩形对象;

CString string ;//字符串对象;

pWnd=GetDlgItem(IDC_Graphic);//得到显示直方图的框架窗口对象指针;

pWndText=GetDlgItem(IDC_NUM);//得到指向文本框对象(IDC_NUM)窗口的指针;

pWnd->GetWindowRect(&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

{

for(j=0;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;

}

(a)LENA图像(b)直方图

图一

上图为LENA的原始图像和其对应的直方图,在(b)图中的135表示当前鼠标在直方图中所指的位置对应的灰度级为135。从该直方图可以看出,LENA图像的灰度主要分布在中高灰度级上,在低灰度级上图像的像素数几乎为零。

二、图像增强

影响系统图像清晰程度的因素很多,例如室外光照度不够均匀就会造成图像灰度过于集中;由CCD(摄像头)获得的图像经过A/D(数/模转换,该功能在图像系统中由数字采集卡来实现)转换、线路传送都会产生噪声污染等等。因此图像质量不可避免的降低了,轻者表现为图像不干净,难于看清细节;重者表现为图像模糊不清,连概貌也看不出来。因此,在对图像进行分析之前,必须要对图像质量进行改善,一般情况下改善的方法有两类:图像增强和图像复原。图像增强不考虑图像质量下降的原因,只将图像中感兴趣的特征有选择的突出,而衰减不需要的特征,它的目的主要是提高图像的可懂度。图像增强的方法分为空域法和频域法两类,空域法主要是对图像中的各个像素点进行操作;而频域法是在图像的某个变换域内,对图像进行操作,修改变换后的系数,例如付立叶变换、DCT变换等的系数,然后再进行反变换得到处理后的图像。图像复原技术与增强技术不同,它需要了解图像质量下降的原因,首先要建立"降质模型",再利用该模型,恢复原始图像。本期讲座我们主要介绍各种增强技术在图象处理系统中的实际应用。

1.灰度变换

简单的说,灰度变换就是指对图像上各个像素点的灰度值x按某个函数T()变换到y。例如为了提高图像的清晰度,需要将图像的灰度级整个范围或其中某一段(A,B)扩展或压缩到(A,B);需要显示出图像的细节部分等都要求采用灰度变换方法。灰度变换有时又被称为图像的对比度增强或对比度拉伸。假定输入图像中的一个像素的灰度级为Z,经过T(Z)函数变换后输出图像对应的灰度级为Z,其中要求Z和Z都要在图像的灰度范围之内。根据T()形式,可以将灰度变换分为线性变换和非线性变换。具体应用中采用何种T(),需要根据变换的要求而定。

对于图像的灰度变换,我们这里介绍一种稍微复杂一点的方法,既直方图均衡化。直方图均衡化是灰度变换的一个重要应用,广泛应用在图像增强处理中,它是以累计分布函数变换为基础的直方图修正法,可以产生一幅灰度级分布具有均匀概率密度的图像,扩展了像素的取值动态范围。若像素点的原灰度为R,变换后的灰度为S,需要注意的是R、S是归一化后的灰度值,其灰度变换函数T()为:

S=T (R);k=0,1…, ;

式中,是第j级灰度值的概率,是图像中j级灰度的像素总数,是图像中灰度级的总数目,是图象中像素的总数。对变换后的S值取最靠近的一个灰度级的值,建立灰度级变换表,将原图像变换为直方图均衡的图像。下面是实现图像直方图均衡化函数的源代码和效果图:

lpDIBHdr=( BITMAPINFOHEADER *)GlobalLock(hdib);//得到图像的位图头信息

lpDIBBits=(BYTE*)lpDIBHdr+sizeof(BITMAPINFOHEADER)+256*sizeof(RGBQUAD);

file://获取图像像素值

float p[256],p1[256],num[256];

int i,j,k;

for(i=0;i<256;i++)//清空三个数组;

{ num[i]=0.0f;

p[i]=0.0f;

p1[i]=0.0f;

}

file://num[]存放图象各个灰度级出现的次数;

int Height=lpDIBHdr->biHeight;

int Width=lpDIBHdr->biWidth;

for(i=0;i

for(j=30;j

{

num[*(lpDIBBits+WIDTHBYTES(Width*8)*i+j)]++;

}

file://p[]存放图像各个灰度级的出现概率;

for(i=0;i<256;i++)

{

p[i]=num[i]/(Width*Height);

}

file://p1[]存放各个灰度级之前的概率和,用于直方图变换;

for(i=0;i<256;i++)

{

for(k=0;k<=i;k++)

p1[i]+=p[k];

}

file://直方图变换;

for(i=0;i

for(j=30;j

{ *(lpDIBBits+WIDTHBYTES(Width*8)*i+j)=(BYTE)(p1[*(lpDIBBits+WIDTHBYTES(Width*8)*i+j)]*25 5+0.5);

}

StretchDIBits (hDC,0,0,lpDIBHdr->biWidth,lpDIBHdr->biHeight,0,0,

lpDIBHdr->biWidth,lpDIBHdr->biHeight,

lpDIBBits,(LPBITMAPINFO)lpDIBHdr,

DIB_RGB_COLORS,

SRCCOPY);//显示图像;

}

(a)LENA原图(b)直方图均衡化后的效果图

(c)原始图象的直方图(d)均衡化后的直方他图

图二

从上述效果图可以看出,经过直方图均衡化处理后,图像变的清晰了,从直方图来看,处理后的LENA 的图像直方图分布更均匀了,在每个灰度级上图像都有像素点。但是直方图均衡化存在着两个缺点:

1)变换后图像的灰度级减少,某些细节消失;

2)某些图像,如直方图有高峰,经处理后对比度不自然的过分增强。

为此M.Kamel和Lian Guan等人从图像相邻像素一般高度相关这一事实出发,将灰度概率分布和空间相关性联系在一起,提出了用二维条件概率密度函数取代一维概率密度函数作为均衡化条件,很好的解决了这个问题,有兴趣的朋友可以参阅一些图像处理书籍和资料。

2.图像平滑

图像平滑主要是为了消除噪声。噪声并不限于人眼所能看的见的失真和变形,有些噪声只有在进行图像处理时才可以发现。图像的常见噪声主要有加性噪声、乘性噪声和量化噪声等。图像中的噪声往往和信号交织在一起,尤其是乘性噪声,如果平滑不当,就会使图像本身的细节如边界轮廓、线条等变的模糊不清,如何既平滑掉噪声有尽量保持图像细节,是图像平滑主要研究的任务。

一般来说,图像的能量主要集中在其低频部分,噪声所在的频段主要在高频段,同时系统中所要提取的汽车边缘信息也主要集中在其高频部分,因此,如何去掉高频干扰又同时保持边缘信息,是我们研究的内容。为了去除噪声,有必要对图像进行平滑,可以采用低通滤波的方法去除高频干扰。图像平滑包括空域法和频域法两大类,在空域法中,图像平滑的常用方法是采用均值滤波或中值滤波,对于均值滤波,它是用一个有奇数点的滑动窗口在图像上滑动,将窗口中心点对应的图像像素点的灰度值用窗口内的各个点的灰度值的平均值代替,如果滑动窗口规定了在取均值过程中窗口各个像素点所占的权重,也就是各个像素点的系数,这时候就称为加权均值滤波;对于中值滤波,对应的像素点的灰度值用窗口内的中间值代替。

实现均值或中值滤波时,为了简便编程工作,可以定义一个n*n的模板数组。另外,读者需要注意一点,在用窗口扫描图像过程中,对于图像的四个边缘的像素点,可以不处理;也可以用灰度值为"0"的像素点扩展图像的边缘。下面给出了采用加权均值滤波的图像平滑函数代码和效果图:

void CDibView::OnImagePh()

{

CClientDC pDC(this);

HDC hDC=pDC.GetSafeHdc();//获取当前设备上下文的句柄;

SetStretchBltMode(hDC,COLORONCOLOR);

HANDLE data1handle;

LPBITMAPINFOHEADER lpBi;

CDibDoc *pDoc=GetDocument();

HDIB hdib;

unsigned char *hData;

unsigned char *data;

hdib=pDoc->GetHDIB();

BeginWaitCursor();

lpBi=(LPBITMAPINFOHEADER)GlobalLock((HGLOBAL)hdib);

hData=(unsigned char*)FindDIBBits((LPSTR)lpBi);

pDoc->SetModifiedFlag(TRUE);

data1handle=GlobalAlloc(GMEM_SHARE,WIDTHBYTES(lpBi->biWidth*8)*lpBi->biHeight);

data=(unsigned char*)GlobalLock((HGLOBAL)data1handle);

AfxGetApp()->BeginWaitCursor();

int i,j,s,t,ms=1;

int sum=0,sumw=0;

int mask[3][3]={{1,1,1},{1,2,1},{1,1,1}};//定义的3x3加权平滑模板;

for(i=0; ibiHeight; i++)

for(j=0; jbiWidth; j++)

{

sumw=0; sum=0;

for(s=(-ms); s<=ms; s++)

for(t=(-ms); t<=ms; t++) if(((i+s)>=0)&&((j+t)>=0)&&((i+s)biHeight)&&((j+t)biWidth))

{

sumw += mask[1+s][1+t];

sum+=*(hData+(i+s)*WIDTHBYTES(lpBi->biWidth*8)+(j+t))*mask[1+s][1+t];

}

if(sumw==0) sumw=1;

sum/=sumw;

if(sum>255)sum=255;

if(sum<0)sum=0;

*(data+i*WIDTHBYTES(lpBi->biWidth*8)+j)=sum;

}

for( j=0; jbiHeight; j++)

for(i=0;ibiWidth;i++)

(a)LENA原图(b)平滑后的效果图

图三

中值或均值平滑有时处理图像的效果并不是很好,它虽然去除了一定的噪声,但同时使图像中的边缘变的模糊,这主要和所选取的窗口大小有关,为此下面介绍了一种既能保持边缘清晰又能消除噪声的方法,其算法如图四所示:

(a)(b) (c)

图四图像平滑模板

上图的含义是在图像中取5*5的区域,包含点(i,j)的五边形和六边形各四个,3*3的区域一个,计算这九个区域的标准差和灰度的平均值,取标准差最小区域的灰度平均值作为点(i,j)的灰度。由于该算法的实现代码和上述代码大同小异,所以代码部分就不再赘述。

3.图像锐化

图像平滑往往使图像中的边界、轮廓变的模糊,为了减少这类不利效果的影响,这就需要利用图像鋭化技术,使图像的边缘变的清晰。图像銳化处理的目的是为了使图像的边缘、轮廓线以及图像的细节变的清晰,经过平滑的图像变得模糊的根本原因是因为图像受到了平均或积分运算,因此可以对其进行逆运算(如微分运算)就可以使图像变的清晰。从频率域来考虑,图像模糊的实质是因为其高频分量被衰减,因此可以用高通滤波器来使图像清晰。

为了要把图像中间任何方向伸展的的边缘和轮廓线变得清晰,我们希望对图像的某种运算是各向同性的。可以证明偏导平方和的运算是各向同性的,既:

式中()是图像旋转前的坐标,()是图像旋转后的坐标。梯度运算就是在这个式子的基础上开方得到的。图像(x,y)点的梯度值:

为了突出物体的边缘,常常采用梯度值的改进算法,将图像各个点的梯度值与某一阈值作比较,如果大于阈值,该像素点的灰度用梯度值表示,否则用一个固定的灰度值表示。

我们在对图像增强的过程中,采用的是一种简单的高频滤波增强方法:

式中f,g分别为锐化前后的图像,是与扩散效应有关的系数。表示对图像f进行二次微分的拉普拉斯算子。这表明不模糊的图像可以由模糊的图像减去乘上系数的模糊图像拉普拉斯算子来得到。

可以用下面的模板H={{1,4,1},{4,-20,4},{1,4,1}}来近似。在具体实现时,上述模板H中的各个系数可以改变,这个系数的选择也很重要,太大了会使图像的轮廓过冲,太小了则图像锐化不明显。实验表明,选取2-8之间往往可以达到比较满意的效果。下面给出等于4的情况下的实现代码和效果图:

void CDibView::OnMenuitem32785()

{

CClientDC pDC(this);

HDC hDC=pDC.GetSafeHdc();//获取当前设备上下文的句柄;

SetStretchBltMode(hDC,COLORONCOLOR);

CDibDoc *pDoc=GetDocument();

HDIB hdib;

hdib=pDoc->GetHDIB();

BITMAPINFOHEADER *lpDIBHdr;//位图信息头结构指针;

BYTE *lpDIBBits;//指向位图像素灰度值的指针;

lpDIBHdr=( BITMAPINFOHEADER *)GlobalLock(hdib);//得到图像的位图头信息

lpDIBBits=(BYTE*)lpDIBHdr+sizeof(BITMAPINFOHEADER)+256*sizeof(RGBQUAD);//获取图像像素值BYTE* pData1;

static int a[3][3]={{1,4,1},{4,-20,4},{1,4,1}};//拉普拉斯算子模板;

int m,n,i,j,sum;

int Width=lpDIBHdr->biWidth;

int Height=lpDIBHdr->biHeight;

pData1=(BYTE*)new char[WIDTHBYTES(Width*8)*Height];

file://进行拉普拉斯滤波运算;

for(i=1;i

for(j=1;j

{

sum=0;

for(m=-1;m<2;m++)

for(n=-1;n<2;n++) sum+=*(lpDIBBits+WIDTHBYTES(Width*8)*(i+m)+j+n)*a[1+m][1+n];

if(sum<0) sum=0;

if(sum>255) sum=255;

*(pData1+WIDTHBYTES(Width*8)*i+j)=sum;

}

file://原始图像pData减去拉普拉斯滤波处理后的图像pData1

for(i=0;i

for(j=0;j

{ sum=(int)(*(lpDIBBits+WIDTHBYTES(Width*8)*i+j)-4*(*(pData1+WIDTHBYTES(Width*8)*i+j)));

if(sum<0) sum=0;

if(sum>255) sum=255;

*(lpDIBBits+WIDTHBYTES(Width*8)*i+j)=sum;

}

StretchDIBits (hDC,0,0,lpDIBHdr->biWidth,lpDIBHdr->biHeight,0,0,

lpDIBHdr->biWidth,lpDIBHdr->biHeight,

lpDIBBits,(LPBITMAPINFO)lpDIBHdr,

DIB_RGB_COLORS,

SRCCOPY);

}

(a)LENA原图(b)拉普拉斯锐化图

图五

本文主要讲解了图像直方图的基本概念和图像点处理运算中的增强、平滑、锐化概念和实现算法,并给处理实现代码和处理效果图和广大读者朋友们交流,希望达到抛砖引玉的作用。

数字图像处理教学大纲(2014新版)

数字图像处理 课程编码:3073009223 课程名称:数字图像处理 总学分: 2 总学时:32 (讲课28,实验4) 课程英文名称:Digital Image Processing 先修课程:概率论与数理统计、线性代数、C++程序设计 适用专业:自动化专业等 一、课程性质、地位和任务 数字图像处理课程是自动化专业的专业选修课。本课程着重于培养学生解决智能化检测与控制中应用问题的初步能力,为在计算机视觉、模式识别等领域从事研究与开发打下坚实的理论基础。主要任务是学习数字图像处理的基本概念、基本原理、实现方法和实用技术,并能应用这些基本方法开发数字图像处理系统,为学习图像处理新方法奠定理论基础。 二、教学目标及要求 1.了解图像处理的概念及图像处理系统组成。 2.掌握数字图像处理中的灰度变换和空间滤波的各种方法。 3.了解图像变换,主要是离散和快速傅里叶变换等的原理及性质。 4.理解图像复原与重建技术中空间域和频域滤波的各种方法。 5. 理解解彩色图像的基础概念、模型和处理方法。 6. 了解形态学图像处理技术。 7. 了解图像分割的基本概念和方法。 三、教学内容及安排 第一章:绪论(2学时) 教学目标:了解数字图像处理的基本概念,发展历史,应用领域和研究内容。通过大量的实例讲解数字图像处理的应用领域;了解数字图像处理的基本步骤;了解图像处理系统的组成。 重点难点:数字图像处理基本步骤和图像处理系统的各组成部分构成。 1.1 什么是数字图像处理 1.2 数字图像处理的起源

1.3.1 伽马射线成像 1.3.2 X射线成像 1.3.3 紫外波段成像 1.3.4 可见光及红外波段成像 1.3.5 微波波段成像 1.3.6 无线电波成像 1.3.7 使用其他成像方式的例子 1.4 数字图像处理的基本步骤 1.5 图像处理系统的组成 第二章:数字图像基础(4学时) 教学目标:了解视觉感知要素;了解几种常用的图像获取方法;掌握图像的数字化过程及其图像分辨率之间的关系;掌握像素间的联系的概念;了解数字图像处理中的常用数学工具。 重点难点:要求重点掌握图像数字化过程及图像中像素的联系。 2.1 视觉感知要素(1学时) 2.1.1 人眼的构造 2.1.2 眼镜中图像的形成 2.1.3 亮度适应和辨别 2.2 光和电磁波谱 2.3 图像感知和获取(1学时) 2.3.1 用单个传感器获取图像 2.3.2 用条带传感器获取图像 2.3.3 用传感器阵列获取图像 2.3.4 简单的图像形成模型 2.4 图像取样和量化(1学时) 2.4.1 取样和量化的基本概念 2.4.2 数字图像表示 2.4.3 空间和灰度级分辨率 2.4.4 图像内插 2.5 像素间的一些基本关系(1学时) 2.5.1 相邻像素 2.5.2 临接性、连通性、区域和边界 2.5.3 距离度量 2.6 数字图像处理中所用数学工具的介绍 2.6.1 阵列与矩阵操作

数字图像处理知

数字图像处理知识点总结

数字图像处理知识点总结 第一章导论 1.图像:对客观对象的一种相似性的生动性的描述或写真。 2.图像分类:按可见性(可见图像、不可见图像),按波段数(单波段、多波段、超波段), 按空间坐标和亮度的连续性(模拟和数字)。3.图像处理:对图像进行一系列操作,以到达预期目的的技术。 4.图像处理三个层次:狭义图像处理、图像分析和图像理解。 5.图像处理五个模块:采集、显示、存储、通信、处理和分析。 第二章数字图像处理的基本概念 6.模拟图像的表示:f(x,y)=i(x,y)×r(x,y),照度分量0

称为采样。采样间隔和采样孔径的大小是两个 很重要的参数。采样方式:有缝、无缝和重叠。 9.将像素灰度转换成离散的整数值的过程叫量化。 10.表示像素明暗程度的整数称为像素的灰度级(或灰度值或灰度)。 11.数字图像根据灰度级数的差异可分为:黑白图像、灰度图像和彩色图像。 12.采样间隔对图像质量的影响:一般来说,采样间隔越大,所得图像像素数越少,空间分 辨率低,质量差,严重时出现像素呈块状的国际棋盘效应;采样间隔越小,所得图像像素数越多,空间分辨率高,图像质量好,但数据量大。13.量化等级对图像质量的影响:量化等级越多,所得图像层次越丰富,灰度分辨率高,图 像质量好,但数据量大;量化等级越少,图像层次欠丰富,灰度分辨率低,会出现假轮廓现象,图像质量变差,但数据量小。但在极少数情况下对固定图像大小时,减少灰度级能改善质量,产生这种情况的最可能原因是减少灰度级一般会增加图像的对比度。例如对细节比较丰富的图像数字化。

基于数字图像处理

基于数字图像处理 的目标识别 通过这半个学期对数字图像处理这门课程的学习,我了解了有关数字图像处理的知识,并且对数字图像处理的相关仿真软件——matlab有了更加深入的了解,可以更加熟练的使用matlab软件处理实际问题,从而促进我对数字图像处理这门课程产生更加浓烈的兴趣,也让我对这种仿真软件有了更加全面的认识,了解它更多的功能。在课程结束之际,我利用自己在课堂上学习的一些知识和在课下学习的东西写出以下总结。希望老师给予耐心指导。 一、数字图像处理技术 数字图像处理(Dital Image Processing)又称为计算机图像处理,它是指将图像信号转换成数字信号并利用计算机对其进行处理的过程。数字图像处理是一种通过计算机采用一定的算法对图形图像进行处理的技术。数字图像处理技术已经在各个领域上都有了比较广泛的应用。从接近人们日常生活的照相,电视图像显示,到工业上面对某些零件的处理等,再到军事类的人像识别,雷达目标识别等,这些都离不开数字图像处理的身影。 图像处理的信息量很大,对处理速度的要求也比较高。Matlab强大的运算和图形展示功能,使图像处理变得更加的简单和直观。本文基于

MATLAB的数字图像处理环境,设计并实现了一个图像处理系统,展示如何通过利用Matlab的工具函数和多种算法实现对图形图像的各种处理。论述了利用设计的系统实现图像文件(bmp、jpg、tiff、gif等)进行打开、保存、另存、打印、退出等功能操作,图像预处理功能(包括彩色图像的灰度化变换等、一般灰度图像的二值化处理、色彩增强等),图像分割,图像特征提取等图像处理。 图像的数学表达式可表示为:f(x,y)表示幅图像。x,y,f为有限、离散值。黑白图像可用二维函数f(x,y)表示,其中x,y是平面的二维坐标,f(x,y)表示点(x,y)的亮度值(灰度值)。对模拟图像来讲,f(x,y)显然是连续函数。为了适应数字计算机的处理,必须对连续图像函数进行空间和幅值数字化。空间坐标(x,y)的数字化称为图像采样,而幅值数字化被称为灰度级量化。经过数字化后的图像称为数字图像(或离散图像)。 F(x,y,z)表示三维的图像,f 为点的分布,有限,离散值,为彩色图像的表示方式。 (1)数字图像的灰度图像的阵列表示法。 设连续图像f(x,y)按等间隔采样,排成MxN阵列(一般取方阵列NxN) 图像阵列中每个元素都是离散值,称为像素(pix—el)。在数字图像处理中,一般取阵列N和灰度级C都是2的整数幂,即取N=及G=。对一般电视图像,N取256或512,灰度级C取64级(m=6bit)至256级m=8bit),即可满足图像处理的需要。对特殊要求的图像,如SAR图片取 10000×10000,灰度级m取8bit或者16bit。

基于Matlab基本图像处理程序

图像读入 ●从图形文件中读入图像 imread Syntax: A = imread(filename, fmt) filename:指定的灰度或彩色图像文件的完整路径和文件名。 fmt:指定图形文件的格式所对应的标准扩展名。如果imread没有找到filename所制定的文件,会尝试查找一个名为filename.fmt的文件。 A:包含图像矩阵的矩阵。对于灰度图像,它是一个M行N列的矩阵。如果文件包含 RGB真彩图像,则是m*n*3的矩阵。 ●对于索引图像,格式[X, map] = imread(filename, fmt) X:图像数据矩阵。 MAP:颜色索引表 图像的显示 ●imshow函数:显示工作区或图像文件中的图像 ●Syntax: imshow(I) %I是要现实的灰度图像矩阵 imshow(I,[low high],param1, val1, param2, val2,...) %I是要现实的灰度图像矩阵,指定要显示的灰度范围,后面的参数指定显示图像的特定参数 imshow(RGB) imshow(BW) imshow(X,map) %map颜色索引表 imshow(filename) himage = imshow(...) ●操作:读取并显示图像 I=imread('C:\Users\fanjinfei\Desktop\baby.bmp');%读取图像数据 imshow(I);%显示原图像 图像增强 一.图像的全局描述 直方图(Histogram):是一种对数据分布情况的图形表示,是一种二维统计图表,它的两个坐标分别是统计样本和该样本对应的某个属性的度量。 图像直方图(Image Histogram):是表示数字图像中亮度分布的直方图,用来描述图象灰度值,标绘了图像中每个亮度值的像素数。 灰度直方图:是灰度级的函数,它表示图像中具有某种灰度级的像素的个数,反映了图 像中某种灰度出现的频率。描述了一幅图像的灰度级统计信息。是一个二维图,横坐标为图像中各个像素点的灰度级别,纵坐标表示具有各个灰度级别的像素在图像中出现的次数或概率。 归一化直方图:直接反应不同灰度级出现的比率。纵坐标表示具有各个灰度级别的像

数字图像处理四个实验报告,带有源程序

数字图像处理 实验指导书 学院:通信与电子工程学院 专业:电子信息工程 班级: 学号: 姓名: XX理工大学

实验一 MATLAB数字图像处理初步 一、实验目的与要求 1.熟悉及掌握在MATLAB中能够处理哪些格式图像。 2.熟练掌握在MATLAB中如何读取图像。 3.掌握如何利用MATLAB来获取图像的大小、颜色、高度、宽度等等相关信息。 4.掌握如何在MATLAB中按照指定要求存储一幅图像的方法。 5.图像间如何转化。 二、实验原理及知识点 1、数字图像的表示和类别 一幅图像可以被定义为一个二维函数f(x,y),其中x和y是空间(平面)坐标,f 在任何坐标处(x,y)处的振幅称为图像在该点的亮度。灰度是用来表示黑白图像亮度的一个术语,而彩色图像是由单个二维图像组合形成的。例如,在RGB彩色系统中,一幅彩色图像是由三幅独立的分量图像(红、绿、蓝)组成的。因此,许多为黑白图像处理开发的技术适用于彩色图像处理,方法是分别处理三副独立的分量图像即可。 图像关于x和y坐标以及振幅连续。要将这样的一幅图像转化为数字形式,就要求数字化坐标和振幅。将坐标值数字化成为取样;将振幅数字化成为量化。采样和量化的过程如图1所示。因此,当f的x、y分量和振幅都是有限且离散的量时,称该图像为数字图像。 作为MATLAB基本数据类型的数值数组本身十分适于表达图像,矩阵的元素和图像的像素之间有着十分自然的对应关系。 图1 图像的采样和量化 根据图像数据矩阵解释方法的不同,MA TLAB把其处理为4类: 亮度图像(Intensity images) 二值图像(Binary images) 索引图像(Indexed images) RGB图像(RGB images)

基于数字图像处理的车牌识别系统

基于数字图像处理的车牌识别系统

基于数字图像处理的车牌识别系统 言经官 电气学院电子112 摘要:车牌识别系统(License Plate Recognition 简称LPR)技术基于数字图像处理,是智能交通系统中的关键技术,同时他的发展也十分迅速,已经逐渐融入到我们的现实生活中。文章介绍了车牌识别系统的意义、图像去噪处理以及图像二值化方法,并通过仿真试验模拟了图像处理的过程。本文所做的工作在于前期的图像预处理工作。本次设计着重在于图像识别方面, 中心工作都为此而展开,文中没有进行车牌的定位处理,而是采用数码相机直接对牌照进行正面拍照,获取原始车牌图像。之后利用Matlab编程对图片进行了大小的调整、彩色图片转化成灰度图片、图片去噪、以及图片二值化等工作。其中,去噪与二值化是关系图像识别率的关键。 关键字:车牌识别系统;图像预处理;字符识别;Matlab;去噪;二值化 引言 智能交通系统(ITS)是当今世界交通管理体系发展的必然趋势,而作为智能交通系统中的重要组成部分之一的车牌自动识别技术,目前已被广泛应用于城市道路监控、高速公路收费与监控、小区与停车场出入口管理、公安治安卡口等场合,成为研究的热点。 伴随我国国民经济的高速发展,国内高速公路、城市道路、停车场建设越来越多,对交通控制,安全管理的要求也日益提高。因此迫切需要采用高科技手段,对违法违章车辆牌照进行登记, 在这种情况下,作为信息来源的自动检索,图像识别技术越来越受到人们的重视。车牌识别系统的出现成为了交通管制必不可少的有力武器。 1 车牌识别系统的目标 利用计算机等辅助设备进行的自动汽车牌照自动识别就是在装备了数字摄像设备和计算机信息管理系统等软硬件平台的基础之上,通过对车辆图像的采集,采用先进的图像处理、模式识别和人工智能技术,在图像中找到车牌的位置,提取出组成车牌号码的全部字符图像,再识别出车牌中的文字、字母和数字,最后给出车牌的真实号码。国外的车牌识别研究始于80 年代,90 年代始已有不少成套的产品出现。由于我国车牌的组成及组合的方式与国外的车牌不一致,使得我们不能直接使用国外的车辆牌照识别系统,而必须针对我国车牌重新设计相应的车辆牌照识别系统。车牌识别的使用环境、背景各有差异,目前还没有一种算法能在不同环境、各种复杂背景条件下达到非常高的车牌识别率,因而车牌识别技术仍然是研究的重点。 2 MATLAB 及其图像处理工具概述 MATLAB 是MAT rix LABora tory( 矩阵实验室) 的缩写, 是Ma thWorks 公司开发的一种功能强、效率高、简单易学的数学软件。MATLAB 7. 1 是一套功能十分强大的工程计算及数据分析软件, 其应用范围涵盖了数学、工业技术、电子科学、医疗卫生、建筑、金融、数字图像处理等各个领域。MATLAB 的图像处理工具箱, 功能十分强大, 支持的图像文件格式丰富, 如* .BMP、* . JPG、* . JPEG、* . GIF、* . ti;f% 95% 94、* . ti;f%95%94F、* . PNG、* . PCX、* . XWD、* . HDF、* . ICO、* .CUR 等。本文将给出MATLAB的图像处理工具箱中的图像处理函数实现图像处理与分析的应用技术实例。

《数字图像处理》课程学习心得

《数字图像处理》课程学习心得 导读:本文《数字图像处理》课程学习心得,仅供参考,如果能帮助到您,欢迎点评和分享。 《数字图像处理》课程学习心得(一) 在这一学期,我选修了《数字图像处理基础》这门课程,同时,老师还讲授了一些视频处理的知识。在这里,梳理一下这学期学到的知识,并提出一些我对这门课程的建议。 图像处理是指对图像信息进行加工,从而满足人类的心理、视觉或者应用的需求的一种行为。图像处理方法一般有数字法和光学法两种,其中数字法的优势很明显,已经被应用到了很多领域中,相信随着科学技术的发展,其应用空间将会更加广泛。数字图像处理又称为计算机图像处理,它是指将图像信号转换成数字信号并利用计算机对其进行处理的过程。数字图像处理是从20世纪60年代以来随着计算机技术和VLSL的发展而产生、发展和不断成熟起来的一个新兴技术领域。数字图像处理技术其实就是利用各种数字硬件与计算机,对图像信息通过转换而得到的电信号进行相应的数学运算,例如图像去噪、图像分割、提取特征、图像增强、图像复原等,以便提高图像的实用性。其特点是处理精度比较高,并且能够对处理软件进行改进来优化处理效果,操作比较方便,但是由于数字图像需要处理的数据量一般很大,因此处理速度有待提高。目前,随着计算机技术的不断发展,计算机的运算速度得到了很大程度的提高。在短短的历史中,它

却广泛应用于几乎所有与成像有关的领域,在理论上和实际应用上都取得了巨大的成就。 1、数字图像处理需用到的关键技术 由于数字图像处理的方便性和灵活性,因此数字图像处理技术已经成为了图像处理领域中的主流。数字图像处理技术主要涉及到的关键技术有:图像的采集与数字化、图像的编码、图像的增强、图像恢复、图像分割、图像分析等。 图像的采集与数字化:就是通过量化和取样将一个自然图像转换为计算机能够处理的数字形式。 图像编码:图像编码的目的主要是来压缩图像的信息量,以便能够满足存储和传输的要求。 图像的增强:图像的增强其主要目的是使图像变得清晰或者将其变换为机器能够很容易分析的形式,图像增强方法一般有:直方图处理、灰度等级、伪彩色处理、边缘锐化、干扰抵制。 图像的恢复:图像恢复的目的是减少或除去在获得图像的过程中因为各种原因而产生的退化,可能是由于光学系统的离焦或像差、被摄物与摄像系统两者之间的相对运动、光学或电子系统的噪声与介于被摄像物跟摄像系统之间的大气湍流等等。 图像的分割:图像分割是将图像划分为一些互相不重叠的区域,其中每一个区域都是像素的一个连续集,通常采用区域法或者寻求区域边界的境界法。 图像分析:图像分析是指从图像中抽取某些有用的信息、数据或

基于数字图像处理的车牌识别系统

基于数字图像处理的车牌识别系统 言经官 电气学院电子112 摘要:车牌识别系统(License Plate Recognition 简称LPR)技术基于数字图像处理,是智能交通系统中的关键技术,同时他的发展也十分迅速,已经逐渐融入到我们的现实生活中。文章介绍了车牌识别系统的意义、图像去噪处理以及图像二值化方法,并通过仿真试验模拟了图像处理的过程。本文所做的工作在于前期的图像预处理工作。本次设计着重在于图像识别方面, 中心工作都为此而展开,文中没有进行车牌的定位处理,而是采用数码相机直接对牌照进行正面拍照,获取原始车牌图像。之后利用Matlab编程对图片进行了大小的调整、彩色图片转化成灰度图片、图片去噪、以及图片二值化等工作。其中,去噪与二值化是关系图像识别率的关键。 关键字:车牌识别系统;图像预处理;字符识别;Matlab;去噪;二值化 引言 智能交通系统(ITS)是当今世界交通管理体系发展的必然趋势,而作为智能交通系统中的重要组成部分之一的车牌自动识别技术,目前已被广泛应用于城市道路监控、高速公路收费与监控、小区与停车场出入口管理、公安治安卡口等场合,成为研究的热点。 伴随我国国民经济的高速发展,国内高速公路、城市道路、停车场建设越来越多,对交通控制,安全管理的要求也日益提高。因此迫切需要采用高科技手段,对违法违章车辆牌照进行登记, 在这种情况下,作为信息来源的自动检索,图像识别技术越来越受到人们的重视。车牌识别系统的出现成为了交通管制必不可少的有力武器。 1 车牌识别系统的目标 利用计算机等辅助设备进行的自动汽车牌照自动识别就是在装备了数字摄像设备和计算机信息管理系统等软硬件平台的基础之上,通过对车辆图像的采集,采用先进的图像处理、模式识别和人工智能技术,在图像中找到车牌的位置,提取出组成车牌号码的全部字符图像,再识别出车牌中的文字、字母和数字,最后给出车牌的真实号码。国外的车牌识别研究始于80 年代,90 年代始已有不少成套的产品出现。由于我国车牌的组成及组合的方式与国外的车牌不一致,使得我们不能直接使用国外的车辆牌照识别系统,而必须针对我国车牌重新设计相应的车辆牌照识别系统。车牌识别的使用环境、背景各有差异,目前还没有一种算法能在不同环境、各种复杂背景条件下达到非常高的车牌识别率,因而车牌识别技术仍然是研究的重点。 2 MATLAB 及其图像处理工具概述 MATLAB 是MAT rix LABora tory( 矩阵实验室) 的缩写, 是Ma thWorks 公司开发的一种功能强、效率高、简单易学的数学软件。MATLAB 7. 1 是一套功能十分强大的工程计算及数据分析软件, 其应用范围涵盖了数学、工业技术、电子科学、医疗卫生、建筑、金融、数字图像处理等各个领域。MATLAB 的图像处理工具箱, 功能十分强大, 支持的图像文件格式丰富, 如* .BMP、* . JPG、* . JPEG、* . GIF、* . ti;f% 95% 94、* . ti;f%95%94F、* . PNG、* . PCX、* . XWD、* . HDF、* . ICO、* .CUR 等。本文将给出MATLAB的图像处理工具箱中的图像处理函数实现图像处理与分析的应用技术实例。

(完整版)数字图像处理MATLAB程序【完整版】

第一部分数字图像处理

实验一图像的点运算 实验1.1 直方图 一.实验目的 1.熟悉matlab图像处理工具箱及直方图函数的使用; 2.理解和掌握直方图原理和方法; 二.实验设备 1.PC机一台; 2.软件matlab。 三.程序设计 在matlab环境中,程序首先读取图像,然后调用直方图函数,设置相关参数,再输出处理后的图像。 I=imread('cameraman.tif');%读取图像 subplot(1,2,1),imshow(I) %输出图像 title('原始图像') %在原始图像中加标题 subplot(1,2,2),imhist(I) %输出原图直方图 title('原始图像直方图') %在原图直方图上加标题 四.实验步骤 1. 启动matlab 双击桌面matlab图标启动matlab环境; 2. 在matlab命令窗口中输入相应程序。书写程序时,首先读取图像,一般调用matlab自带的图像, 如:cameraman图像;再调用相应的直方图函数,设置参数;最后输出处理后的图像; 3.浏览源程序并理解含义; 4.运行,观察显示结果; 5.结束运行,退出; 五.实验结果 观察图像matlab环境下的直方图分布。 (a)原始图像 (b)原始图像直方图 六.实验报告要求 1、给出实验原理过程及实现代码; 2、输入一幅灰度图像,给出其灰度直方图结果,并进行灰度直方图分布原理分析。

实验1.2 灰度均衡 一.实验目的 1.熟悉matlab图像处理工具箱中灰度均衡函数的使用; 2.理解和掌握灰度均衡原理和实现方法; 二.实验设备 1.PC机一台; 2.软件matlab; 三.程序设计 在matlab环境中,程序首先读取图像,然后调用灰度均衡函数,设置相关参数,再输出处理后的图像。 I=imread('cameraman.tif');%读取图像 subplot(2,2,1),imshow(I) %输出图像 title('原始图像') %在原始图像中加标题 subplot(2,2,3),imhist(I) %输出原图直方图 title('原始图像直方图') %在原图直方图上加标题 a=histeq(I,256); %直方图均衡化,灰度级为256 subplot(2,2,2),imshow(a) %输出均衡化后图像 title('均衡化后图像') %在均衡化后图像中加标题 subplot(2,2,4),imhist(a) %输出均衡化后直方图 title('均衡化后图像直方图') %在均衡化后直方图上加标题 四.实验步骤 1. 启动matlab 双击桌面matlab图标启动matlab环境; 2. 在matlab命令窗口中输入相应程序。书写程序时,首先读取图像,一般调用matlab自带的图像, 如:cameraman图像;再调用相应的灰度均衡函数,设置参数;最后输出处理后的图像; 3.浏览源程序并理解含义; 4.运行,观察显示结果; 5.结束运行,退出; 五.实验结果 观察matlab环境下图像灰度均衡结果及直方图分布。 (a)原始图像 (b)均衡化后图像

图像处理matlab程序实例

程序实例 1旋转: x=imread('d:\MATLAB7\work\flower.jpg'); y=imrotate(x,200,'bilinear','crop'); subplot(1,2,1); imshow(x); subplot(1,2,2); imshow(y) 2.图像的rgb clear [x,map]=imread('D:\Program Files\MATLAB\R2012a\bin\shaohaihe\shh1.jpg');y=x(90:95,90:95);imshow(y)R=x(90:95,90:95,1);G=x(90:95,90:95,2);B=x(90:95,90:95,3);R,G,B 3.加法运算clear I=imread('D:\Program Files\MATLAB\R2012a\bin\shaohaihe\shh3.jpg');J=imnoise(I,'gaussian',0,0.02);%向图片加入高斯噪声subplot(1,2,1),imshow(I);%显示图片subplot(1,2,2),imshow(J);K=zeros(242,308);%产生全零的矩阵,大小与图片的大小一样for i=1:100%循环100加入噪声J=imnoise(I,'gaussian',0,0.02);J1=im2double(J);K=K+J1;end K=K/100; figure,imshow(K);save

4.减法 clear I=imread('D:\Program Files\MATLAB\R2012a\bin\shaohaihe\shao.jpg'); J=imread('D:\Program Files\MATLAB\R2012a\bin\shaohaihe\shao1.jpg'); K=imsubtract(I,J);%实现两幅图相减 K1=255-K;%将图片求反显示 figure;imshow(I); title('有噪声的图'); figure;imshow(J); title('原图'); figure;imshow(K1); title('提取的噪声'); save 5.图像的乘法 H=imread('D:\Program Files\MATLAB\R2012a\bin\shaohaihe\shao.jpg'); I=immultiply(H,1.2);将此图片乘以1.2 J=immultiply(H,2); subplot(1,3,1),imshow(H); title('原图'); subplot(1,3,2),imshow(I); title('·放大1.2'); subplot(1,3,3),imshow(J); title('放大2倍'); 6除法运算 moon=imread('moon.tif'); I=double(moon); J=I*0.43+90; K=I*0.1+90; L=I*0.01+90; moon2=uint8(J); moon3=uint8(K); moon4=uint8(L); J=imdivide(moon,moon2); K=imdivide(moon,moon3); L=imdivide(moon,moon4); subplot(2,2,1),imshow(moon); subplot(2,2,2),imshow(J,[]); subplot(2,2,3),imshow(K,[]); subplot(2,2,4),imshow(L,[]);

数字图像处理基础知识总结

第一章数字图像处理概论 *图像是对客观存在对象的一种相似性的、生动性的描述或写真。 *模拟图像 空间坐标和明暗程度都是连续变化的、计算机无法直接处理的图像 *数字图像 空间坐标和灰度均不连续的、用离散的数字(一般整数)表示的图像(计算机能处理)。是图像的数字表示,像素是其最小的单位。 *数字图像处理(Digital Image Processing) 利用计算机对数字图像进行(去除噪声、增强、复原、分割、特征提取、识别等)系列操作,从而获得某种预期的结果的技术。(计算机图像处理) *数字图像处理的特点(优势) (1)处理精度高,再现性好。(2)易于控制处理效果。(3)处理的多样性。(4)图像数据量庞大。(5)图像处理技术综合性强。 *数字图像处理的目的 (1)提高图像的视感质量,以达到赏心悦目的目的 a.去除图像中的噪声; b.改变图像的亮度、颜色; c.增强图像中的某些成份、抑制某些成份; d.对图像进行几何变换等,达到艺术效果; (2)提取图像中所包含的某些特征或特殊信息。 a.模式识别、计算机视觉的预处理 (3)对图像数据进行变换、编码和压缩,以便于图像的存储和传输。 **数字图像处理的主要研究内容 (1)图像的数字化 a.如何将一幅光学图像表示成一组数字,既不失真又便于计算机分析处理 b.主要包括的是图像的采样与量化 (2*)图像的增强 a.加强图像的有用信息,消弱干扰和噪声 (3)图像的恢复 a.把退化、模糊了的图像复原。模糊的原因有许多种,最常见的有运动模糊,散焦模糊等(4*)图像的编码 a.简化图像的表示,压缩表示图像的数据,以便于存储和传输。 (5)图像的重建 a.由二维图像重建三维图像(如CT) (6)图像的分析 a.对图像中的不同对象进行分割、分类、识别和描述、解释。 (7)图像分割与特征提取 a.图像分割是指将一幅图像的区域根据分析对象进行分割。 b.图像的特征提取包括了形状特征、纹理特征、颜色特征等。 (8)图像隐藏 a.是指媒体信息的相互隐藏。 b.数字水印。 c.图像的信息伪装。 (9)图像通信

基于Matlab的数字图像处理系统毕业设计论文

论文(设计)题目: 基于MATLAB的数字图像处理系统设计 姓名宋立涛 学号201211867 学院信息学院 专业电子与通信工程 年级2012级 2013年6月16日

基于MATLAB的数字图像处理系统设计 摘要 MATLAB 作为国内外流行的数字计算软件,具有强大的图像处理功能,界面简洁,操作直观,容易上手,而且是图像处理系统的理想开发工具。 笔者阐述了一种基于MATLAB的数字图像处理系统设计,其中包括图像处理领域的大部分算法,运用MATLAB 的图像处理工具箱对算法进行了实现,论述了利用系统进行图像显示、图形表换及图像处理过程,系统支持索引图像、灰度图像、二值图像、RGB 图像等图像类型;支持BMP、GIF、JPEG、TIFF、PNG 等图像文件格式的读,写和显示。 上述功能均是在MA TLAB 语言的基础上,编写代码实现的。这些功能在日常生活中有很强的应用价值,对于运算量大、过程复杂、速度慢的功能,利用MATLAB 可以既能快速得到数据结果,又能得到比较直观的图示。 关键词:MATLAB 数字图像处理图像处理工具箱图像变换

第一章绪论 1.1 研究目的及意义 图像信息是人类获得外界信息的主要来源,近代科学研究、军事技术、工农业生产、医学、气象及天文学等领域中,人们越来越多地利用图像信息来认识和判断事物,解决实际问题,由此可见图像信息的重要性,数字图像处理技术将会伴随着未来信息领域技术的发展,更加深入到生产和科研活动中,成为人类生产和生活中必不可少的内容。 MATLAB 软件不断吸收各学科领域权威人士所编写的实用程序,经过多年的逐步发展与不断完善,是近几年来在国内外广泛流行的一种可视化科学计算软件。MATLAB 语言是一种面向科学与工程计算的高级语言,允许用数学形式的语言来编写程序,比Basic、Fortan、C 等高级语言更加接近我们书写计算公式的思维方式,用MATLAB 编写程序犹如在演算纸上排列出公式与求解问题一样。它编写简单、编程效率高并且通俗易懂。 1.2 国内外研究现状 1.2.1 国内研究现状 国内在此领域的研究中具有代表性的是清华大学研制的数字图像处理实验开发系统TDB-IDK 和南京东大互联技术有限公司研制的数字图像采集传输与处理实验软件。 TDB-IDK 系列产品是一款基于TMS320C6000 DSP 数字信号处理器的高级视频和图像系统,也是一套DSP 的完整的视频、图像解决方案,该系统适合院校、研究所和企业进行视频、图像方面的实验与开发。该软件能够完成图像采集输入程序、图像输出程序、图像基本算法程序。可实现对图像信号的实时分析,图像数据相对DSP独立方便开发人员对图像进行处理,该产品融合DSP 和FPGACPLD 两个高端技术,可以根据用户的具体需求合理改动,可以分析黑白和彩色信号,可以完成图形显示功能。 南京东大互联技术有限公司研制的数字图像采集传输与处理实验软件可实现数字图像的采集、传输与处理。可利用软件及图像采集与传输设备,采集图像并实现点对点的数字图像传输,可以观察理解多种图像处理技术的效果和差别,

图像运算的MATLAB实现

rice=imread(‘rice.png’); % 读入图像 I=double(rice); % 数据类型转换 J=I*0.43+60; % 像素点算术运算 rice2=uint8(J) % 数据类型转换subplot(1,2,1),imshow(rice); % 原图绘制subplot(1,2,2),imshow(rice2); % 计算后图像绘制

X = uint8([ 255 10 75; 44 225 100]); Y = uint8([ 50 20 50; 50 50 50 ]); Z = imdivide(X,Y)

I = imread('rice.png'); % 读入图像background = imopen(I,strel('disk',15)); % 图像开运算Ip = imdivide(I,background); % 图像除法运算imshow(Ip,[]) % 显示运算后的图像

I = imread('rice.png'); % 读入图像 J = imdivide(I,2); % 图像除以一个常数subplot(1,2,1), imshow(I) % 显示原始图像subplot(1,2,2), imshow(J) % 显示运算后的图像

I = imread('cameraman.tif'); % 读入图像J = imlincomb(2,I); % 灰度值放大imshow(J) % 显示运算后的图像

I = imread('cameraman.tif'); % 读入图像 J = uint8(filter2(fspecial('gaussian'), I)); % 图像滤波 K = imlincomb(1,I,-1,J,128); % K(r,c) = I(r,c) - J(r,c) + 128 % 图像相减后加上一个常数figure, imshow(K) % 显示运算后的图像

(完整版)学习数字图像处理心得

学习数字图像处理心得 姓名:黄冬芬学号:070212051 班级:12级通信工程1班数字图像是我们生活中接触最多的图像种类,他伴随人们的生活、学习、工作,并在军事、工业和医学方面发挥着极大地作用,可谓随处可见,尤其在生活方面作为学生的我们,会在外出旅游,生活和工作中拆下许多数字照片,现在已进入信息化时代,图片作为信息的重要载体,在信息传输方面有着不可替代的作用,并且近年来图像处理领域,数字图像处理技术取得了飞速的发展,作为计算机类专业的大学生更加有必要对数字图像处理技术有一定的掌握,而大多数人对于数字图像的知识也很模糊,比如各类繁多的各种图像格式之间的特点,不同的情况该用何种图像格式,还有关于图像的一些基本术语也不甚了解。尤为重要的是一些由于拍摄问题导致的令人不甚满意的照片该如何处理,或者如何对一些照片进行处理实现特殊的表现效果。所以对于数字图像处理这门课大家有着极大地兴趣。我们班有的同学学过Photoshop软件,因此对于数字图像处理有了一些基础,更加想利用这门课的学习加深自己数字图像处理的理解并提高在数字图像处理方面的能力。 通过这8周的学习,我们虽然还没有完全掌握数字图像处理技术,但是收获不少,对于数字图像方面的知识有了更深的了解。更加理解了数字图像处理的本质,即是一些数字矩阵,但灰度图像和彩色图像的矩阵形式是不同的。对于一些耳熟能详的数字图像相关的术语有了明确的认识,比如,常见的像素(衡量图像的大小)、分辨率(衡

量图像的清晰程度)、位图(放大后会失真)、矢量图(经过放大不会失真)等大家都能叫上口但都很模糊的名词。也了解图像处理技术中一些常用处理技术的实质,比如锐化处理是使模糊的图像变清晰,增强图片的边缘等细节。而平滑处理的目的是消除噪声、模糊图像,在提取大目标之前去除小的细节或弥合目标间的缝隙。对常见的RGB图像和灰度图像有了明确的理解,这对大家以后应用Photoshop等图像处理软件对图像进行处理打下了坚实的基础。更重要的是学习到了数字图像处理的思想。通过学习也是对C++编程应用的很好的实践和复习。 当然通过8周的学习还远远不够,也有许多同学收获甚微,我总结了下大家后期学习的态度与前期学习的热情相差很大的原因。刚开始大家是有很高的热情去学习这门课,可随着这门课的更深入的学习,大家渐渐发现课程讲授内容与自己起初想学的实用图像处理技术是有很大的差别的,大家更着眼于如何利用软件、技术去处理图像而得到满意的效果,或者进行一些图像的创意设计,可是课程的内容更偏向于如何通过编程实现如何多图像进行一些类似锐化、边缘提取、模糊、去除噪声等基础功能的实现,这其中涉及很多算法、函数,需要扎实的数学基础和编程基础,并且需要利用大量时间在课下编写代码,并用visual c++软件实现并进行调试,然而大部分人的C++实践能力和编程能力还有待提高,尤其是对于矩阵进行操作的编程尤为是个考验。 在老师授课方面的建议是可以再课上多进行一些具体操作,这

数字图像处理试题及答案

一、填空题(每题1分,共15分) 1、列举数字图像处理的三个应用领域 医学 、天文学 、 军事 2、存储一幅大小为10241024?,256个灰度级的图像,需要 8M bit 。 3、亮度鉴别实验表明,韦伯比越大,则亮度鉴别能力越 差 。 4、直方图均衡化适用于增强直方图呈 尖峰 分布的图像。 5、依据图像的保真度,图像压缩可分为 无损压缩 和 有损压缩 6、图像压缩是建立在图像存在 编码冗余 、 像素间冗余 、 心理视觉冗余 三种冗余基础上。 7、对于彩色图像,通常用以区别颜色的特性是 色调 、 饱和度 亮度 。 8、对于拉普拉斯算子运算过程中图像出现负值的情况,写出一种标定方法: m i n m a x m i ((,))*255/()g x y g g g -- 二、选择题(每题2分,共20分) 1、采用幂次变换进行灰度变换时,当幂次取大于1时,该变换是针对如下哪一类图像进行增强。 ( B ) A 图像整体偏暗 B 图像整体偏亮 C 图像细节淹没在暗背景中 D 图像同时存在过亮和过暗背景 2、图像灰度方差说明了图像哪一个属性。( B ) A 平均灰度 B 图像对比度 C 图像整体亮度 D 图像细节 3、计算机显示器主要采用哪一种彩色模型( A ) A 、RG B B 、CMY 或CMYK C 、HSI D 、HSV 4、采用模板[-1 1]T 主要检测( A )方向的边缘。 A.水平 B.45? C.垂直 D.135? 5、下列算法中属于图象锐化处理的是:( C ) A.低通滤波 B.加权平均法 C.高通滤波 D. 中值滤波 6、维纳滤波器通常用于( C ) A 、去噪 B 、减小图像动态范围 C 、复原图像 D 、平滑图像 7、彩色图像增强时, C 处理可以采用RGB 彩色模型。 A. 直方图均衡化 B. 同态滤波 C. 加权均值滤波 D. 中值滤波 8、__B__滤波器在对图像复原过程中需要计算噪声功率谱和图像功率谱。 A. 逆滤波 B. 维纳滤波 C. 约束最小二乘滤波 D. 同态滤波 9、高通滤波后的图像通常较暗,为改善这种情况,将高通滤波器的转移函数加上一常数量以便引入 一些低频分量。这样的滤波器叫 B 。 A. 巴特沃斯高通滤波器 B. 高频提升滤波器 C. 高频加强滤波器 D. 理想高通滤波器 10、图象与灰度直方图间的对应关系是 B __ A.一一对应 B.多对一 C.一对多 D.都不 三、判断题(每题1分,共10分)

基于VC++的数字图像处理课程设计

基于VC++的数字图像处理课程设计 一、概述 本次电子课程设计是基于VC++ 6.0 MFC多文档编程编写一个图像处理软件,这个软件能够实现BMP格式图像的浏览与编辑,打开和保存。实现对图像的平滑处理,包括邻域平均法和中值滤波法。还有对图像的锐化处理,包括梯度法和拉普拉斯算子法。 BMP文件是Windows操作系统中的标准图像文件格式,可以分成两类:设备相关位图和设备无关位图,使用非常广。它采用位映射存储格式,除了图像深度可选外,不采用其他任何压缩,因此BMP文件所占用的空间很大。由于BMP文件格式是Windows环境交换与图有关的数据的一种标准,因此在Windows环境中运行的图形图像软件都支持BMP图像格式。 图像平滑的目的是为了消除噪声,主要处理的方式有邻域平均法即通过提高信噪比,取得较好的平滑效果;空间域低通滤波采用低通滤波的方法去除噪声;以及频率低通滤波法通过除去其高频分量就能去掉噪声,从而使图像的到平滑。 图像锐化的主要目的是为了增强图像边缘、轮廓和细节,使模糊的图像变得更加清晰,颜色、细节变得鲜明突出,图像的质量有所改善,产生更适合人眼观察和识别的图像。 经过平滑的图像变得模糊的根本原因是因为图像受到了平均或积分运算,因此可对其进行逆运算(如微分运算)就可以使图像变得清晰。从频率域来考虑,图像模糊的实质是因为其高频分量被衰减,因此可以用高通滤波器来使图像清晰。 主要功能概述: 1、打开和保存8位bmp图像 2、图像平滑处理:分为邻域平均法和中值滤波法。邻域平均法中又有3*3均值滤波器 法、超限邻域平均法、n*n均值滤波器法、有选择的局部平均化。中值滤波法中有n*n中值滤波器法、十字形中值滤波法、n*n最大值滤波器法。 3、图像锐化处理:分为梯度法和拉普拉斯算子法。 二、程序流程图

基本数字(精选)图像处理算法的matlab实现

基本数字图像处理算法的matlab实现 1.数字图像处理的简单介绍 所谓数字图像就是把传统图像的画面分割成为像素的小的离散点,各像素的灰度值也是用离散值来表示的。 数字图像处理是通过计算机对图像进行去除噪声、增强、复原、分割、提取特征等处理的方法和技术。 2.图像的显示与运算 2.1图像的显示 Matlab显示语句 imshow(I,[lowhigh])%图像正常显示 I为要显示的图像矩阵。,[lowhigh]为指定显示灰度图像的灰度范围。高于high的像素被显示成白色;低于low的像素被显示成黑色;介于high和low之间的像素被按比例拉伸后显示为各种等级的灰色。 subplot(m,n,p) 打开一个有m行n列图像位置的窗口,并将焦点位于第p个位置上。 2.2图像的运算 灰度化将彩色图像转化成为灰度图像的过程成为图像的灰度化处理。彩色图像中的每个像素的颜色有R、G、B三个分量决定,而每个分量有255中值可取,这样一个像素点可以有1600多万(255*255*255)的颜色的变化范围。而灰度图像是R、G、B三个分量相同的一种特殊的彩色图像,其一个像素点的变化范围为255种,所以在数字图像处理种一般先将各种格式的图像转变成灰度图像以使后续的图像的计算量变得少一些。灰度图像的描述与彩色图像一样仍然反映了整幅图像的整体和局部的色度和亮度等级的分布和特征。图像的灰度化处理可用两种方法来实现。

第一种方法使求出每个像素点的R、G、B三个分量的平均值,然后将这个平均值赋予给这个像素的三个分量。 第二种方法是根据YUV的颜色空间中,Y的分量的物理意义是点的亮度,由该值反映亮度等级,根据RGB和YUV颜色空间的变化关系可建立亮度Y与R、G、B三个颜色分量的对应:Y=0.3R+0.59G+0.11B,以这个亮度值表达图像的灰度值。 灰度是灰度级的函数,它表示图象中具有每种灰度级的象素的个数,反映图象中每种灰度出现的频率。 图像增强的目标是改进图片的质量,例如增加对比度,去掉模糊和噪声,修正几何畸变等;图像复原是在假定已知模糊或噪声的模型时,试图估计原图像的一种技术。 Matlab图像格式转换语句 rgb2gray(I) %从RGB图创建灰度图 imhist(I) %画灰度直方图 图像的线性变换 D B=f(D A)=f A*D A+f B Matlab源代码: I1=imread('F:\图片2.jpg'); subplot(2,2,1);imshow(I1);title('原图'); I2=rgb2gray(I1); %灰度化图像 subplot(2,2,2);imshow(I2);title('灰度化后图'); [M,N]=size(I2); subplot(2,2,3) [counts,x]=imhist(I2,60); %画灰度直方图 counts=counts/M/N; stem(x,counts);title('灰度直方图'); g=zeros(M,N);%图像增强

相关文档
相关文档 最新文档