[工学]数字图像处理课程综合实习报告.doc

上传人:音乐台 文档编号:1977403 上传时间:2019-01-27 格式:DOC 页数:21 大小:2.19MB
返回 下载 相关 举报
[工学]数字图像处理课程综合实习报告.doc_第1页
第1页 / 共21页
[工学]数字图像处理课程综合实习报告.doc_第2页
第2页 / 共21页
[工学]数字图像处理课程综合实习报告.doc_第3页
第3页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《[工学]数字图像处理课程综合实习报告.doc》由会员分享,可在线阅读,更多相关《[工学]数字图像处理课程综合实习报告.doc(21页珍藏版)》请在三一文库上搜索。

1、数字图像处理课程综合实习实习报告 学 院XXXXXX学院班 级XXX班学 号 XXXXX姓 名XXXXX日 期 2011-06-27指导教师XXXX 21 / 21一、实习目的和意义3二、实习原理和方法31)我的实习内容32)数字图像基本概念33)RAW格式图像与BMP格式图像44)灰度线性变换55)图像局部处理:低通滤波和高通滤波56)中值滤波57)边缘检测68)图像几何变换:缩放、平移、旋转、转置69)直方图均衡化710)二值化:状态法、判断分析法7三、实习过程与步骤81)格式转换(RAW格式到BMP格式)82)灰度线性变换93)高通滤波和低通滤波94)中值滤波105)图像的几何变换(旋转

2、、缩放、平移)106)直方图的显示与均衡化127)边缘检测128)图像二值化139)模板匹配15四、实习结果分析与评价151)初始图像152)将RAW格式图像转换成BMP格式图像163)图像点运算:灰度线性变换164)图像局部处理:高通滤波和低通滤波165)中值滤波176)图像几何变换:旋转、缩放、平移177)边缘检测188)直方图均衡化189)图像二值化1810)模板匹配19五、实习总结与体会20一、 实习目的和意义本实习内容旨在让学生通过用VC等高级语言编写数字图像处理的一些基本算法程序,来巩固和掌握图像处理技术的基本技能,提高实际动手能力,并通过实际编程了解图像处理软件的实现的基本原理。

3、为学生进一步学习数字摄影测量、遥感和地理信息系统等专业课程以及应用图像处理解决实际问题奠定基础。二、 实习原理和方法1) 我的实习内容三、三.1(a) 必做部分1)将RAW格式图像转换成BMP格式图像2)图像点运算:灰度线性变换3)图像局部处理:高通滤波和低通滤波(b) 选做部分1)图像几何变换:缩放、平移、旋转、转置2)图像边缘提取:中值滤波、边缘检测3)直方图均衡化4)图像二值化影像融合2) 数字图像基本概念(a) 数字图像连续物理图像采样和量化为离散数值矩阵,矩阵中每个元素表示相应位置像素亮度,称之为数字图像。描述数字图像,就要用到像素行数(Height)、像素列数(Width),每行存

4、储字节数(LineBytes),每个像素(i,j)亮度值(pData(Height-i-1)*LineBYtes+j)。数字图像处理,就是对Height行、 Width列像素亮度进行运算,有空间域的点运算、邻域运算以及频率域运算等(b) 像素颜色1)单色图像 只有黑白两色,像素值1位,取0或1。2)256色图像 256色图像有256种颜色,像素值8位,取0-255。真彩色图像 真彩色图像有256 X 256 X256种颜色,像素值24位3)灰度图像 灰度图像有256种灰度级,像素值8位,取0-255,每一灰度级B、G、R分量相等。8位位图是比较广泛的图像表示方法,当需要实时快速处理图像时,利用

5、8位位图近似处理.(c) 图像格式数字图像中,像素值矩阵用二维数组表示,像素值按不同方式存储,图像格式就不同。图像数据存成文件就得到图像文件,图像格式不同,图像文件扩展名就不同。(d) 位图的使用CBmFlie类CBmpFile 是对位图常用功能的一个封装类。CBmpFile 可实现从文件读入位图数据、保存位图到文件、在Windows窗口中显示位图、新建位图等功能。各功能的调用函数分别如下:1、新建位图CreateBmp(int cols,int rows,int pixelPytes);2、读入位图Load4File( LPCSTR lpstrPathName );参数解释:LPCSTR l

6、pstrPathName: 位图文件的路径3、保存位图Save2File( LPCSTR lpstrPathName );4、显示位图Draw2DC( HDC hDC,int x,int y );5、 修改位图的位颜色设对象定义位:CBmpFile bmpFile;a)灰度影像bmpFile行号列号 新灰度b)彩色影像bmpFile.m_pImgDat(行号m_Cols+列号)30新RbmpFile.m_pImgDat(行号m_Cols+列号)30新GbmpFile.m_pImgDat(行号m_Cols+列号)30新B3) RAW格式图像与BMP格式图像RAW格式:文件按照数字图像组成的二维矩

7、阵,将像素按行列号顺序存储在文件中。这种文件只含有图像像素数据,不含有信息头,因此,在读图像时,需要根据文件大小,计算图像所包含的行列号,或者需要事先知道图像大小(矩阵大小)。但这种文件读取和保存简单。RAW文件按图像上行到下行、左列到右列顺序存储,而BMP文件数据区按图像上下行到上行、左列列到右列顺序存储到数据区。实现RAW文件到BMP文件的转换,需要为BMP文件生成文件头、信息头、颜色表、数据区,将RAW文件数据区赋值到BMP文件数据区。4) 灰度线性变换点运算是指像素值(即像素点上的灰度值)通过运算改变之后,可以改善图象的显示效果。这是一种像素的逐点运算,是旧图象与新图象之间的映射关系,

8、是一种简单但却十分有效的一种图象处理手段。常用方法有灰度线性变换、直方图均衡、对比度调整、直方图规定化、对数变换、指数变换、密度分割等方法。 灰度的线性变换就是指图像的中所有点的灰度按照线性灰度变换函数进行变换。灰度变换方程如下:该方程为线性方程。式中参数 为输入图像的像素的灰度值,参数为输出图像的灰度值5) 图像局部处理:低通滤波和高通滤波局部处理在处理某一像素时,利用与该像素相邻的一组像素,经过某种变换得到处理后图像中某一点的像素值。目标像素的邻域一般是由像素组成的二维矩阵,该矩阵的大小为奇数,目标像素位于该矩阵的中央,即目标像素就是区域的中心像素。经过处理后,目标像素的值为经过特定算法计

9、算后所得的结果。主要的局部处理算法有卷积、中值滤波sobel边缘检测等,其中卷积算法的应用最广泛,大部分的局部处理都采用卷积算法来实现。卷积可以简单地看成加权求和的过程。卷积时使用的权用一个很小的矩阵来表示,矩阵的大小是奇数,而且与使用的区域的大小相同。这种权矩阵叫做卷积核,区域中的每个像素分别与卷积核中的每个元素相乘,所有乘积之和即为区域中心像素的新值。比如,对于一个3x3的区域P与卷积核K卷积后,区域P的中心像素 表示为:其中,P= ,K=卷积核中各元素叫做卷积系数。卷积核中卷积系数的大小、方向积排列顺序决定了卷积的图像处理效果,如低通滤波:图像平滑与模糊,高通滤波:图像锐化与清晰。通常采

10、用3x3、5x5或7x7的卷积核,所有卷积核的行、列数都是奇数。6) 中值滤波中值滤波是对一个滑动窗口内的诸像素灰度值排序,用中值代替窗口中心像素的原来灰度值,因此它是一种非线性的图像平滑法。它对脉冲干扰及椒盐噪声的抑制效果好,在抑制随机噪声的同时能有效保护边缘少受模糊。但它对点、线等细节较多的图像却不太合适。对中值滤波法来说,正确选择窗口尺寸的大小是很重要的环节。一般很难事先确定最佳的窗口尺寸,需通过从小窗口到大窗口的中值滤波试验,再从中选取最佳的。 中值滤波法能有效削弱椒盐噪声,且比邻域、超限像素平均法更有效。7) 边缘检测边缘是指图像中限速灰度有阶跃变化或屋顶状变化的像素的集合。阶跃状边

11、缘位于其两边的像素灰度值有明显不同的地方;屋顶状边缘位于灰度值从增加到减少的转折处。边缘存在于目标与背景、目标与目标、区域与区域、基元与基元之间,对图像识别和分析非常有用,边缘能勾画物体轮廓,使观察者一目了然,包含了丰富的信息,是图像识别中抽取的重要属性。利用边缘灰度变化的一阶和二阶倒数的特点,可以将边缘点检测出来。其中根据一阶导数来检测边缘的算子有:Roberts梯度算子、Prewitt算子、Sobel算子等;根据二阶导数来检测边缘的算子有:Laplacian算子、Marr算子等。本次实习将实现以下算子:几种常用的边缘检测算子Prewitt 算子11100011110110110110120

12、2101121000121Sobel算子:8) 图像几何变换:缩放、平移、旋转、转置平移:将图像中所有的点都按照指定的平移量水平、垂直移动。设(x0,y0)为原图像上的一点,图像水平平移量tx,垂直平移量为ty,则平移后点(x0,y0)的坐标变为(x1,y1)。(x0,y0)与(x1,y1)之间的关系为:x1=x0+tx;y1=y0+ty;以矩阵的形式表示为: 它的逆变化:平移后的图像中每个像素的颜色是由原图像中的对应点颜色确定。如新图中的(0,0)点的颜色和原图中(-tx,-ty)处的一样旋转旋转前:x0=r*cos(b); (3)y0=r*sin(b);旋转a 角度后:x1=r*cos(b

13、-a)=r*cos(b)*cos(a)+r*sin(b)*sin(a)=x0*cos(a)+y0*sin(a)y1=r*sin(b-a)=r*sin(b)*cos(a)-r*cos(b)*sin(a)=-x0*sin(a)+y0*cos(a); (4)逆变换:有了上面的公式,我们可以把变换分成3 步第一, 将坐标系I 变成II;第二, 将该点顺时针旋转a 角;第三, 将坐标系II 变回I.这样,我们就得到了变换矩阵,是上面三个矩阵的级联。那么对于新图像中的每一点,就可以根据对应原图中的点,得到它的灰度。如果超出原图范围,则填成白色。要注意的是,由于有浮点运算,计算出来点的坐标可能不是整数,采用

14、取整处理或插值法来处理。9) 直方图均衡化直方图均衡化是将原图像通过某种变换,得到一幅灰度直方图为均匀分布的新图像的方法。从人眼视觉特性来考虑,一幅图像的直方图如果是均匀分布的,即Ps(s)=k(归一化时k=1)时,该图像色调给人的感觉比较协调。因此将原图像直方图通过T(r)调整为均匀分布的直方图,这样修正后的图像能满足人眼视觉要求。10) 二值化:状态法、判断分析法状态法(谷峰法)首先统计最简单图像的灰度直方图,若其直方图形状有明显的谷,则将谷所对应的灰度值作为阈值,按照下面的公式进行二值化,就可以将目标从图像中分割出来。判断分析法三、 实习过程与步骤进入MFC应用程序向导,从而创建MFC应

15、用程序框架demo.dsw 在demoDoc.h中添加如下:#include bmpFile.hpublic: CBmpFile m_bmpFile;打开文件,在demoDoc.cpp中添加如下:m_bmpFile.Load4File(lpszPathName); 新建文件,在demoDoc.cpp中加入:m_bmpFile.CreateBmp(1024,1024,1);(列数 行数 位深 )1) 格式转换(RAW格式到BMP格式)建立菜单打开ResourceView,并且在Menu下双击IDR_DEMOTYPE,增加菜单项目图像处理,在图像处理下建立子菜单:Raw to Bmp;设置ID为I

16、D_RAWTOBMP;建立对话框类并且设置对话框在ResourceView下右键点击Dialog,添加新的对话框,添加控件,并通过类向导创建类CRaw2BmpDlg,添加变量m_sBmpOut,m_sRawIn,m_iHeight,m_iWidth,m_iBSQ,m_iGray;在RawToBmpDlg类中添加如下函数(1)在”RAW浏览”按钮处加入如下代码,获取raw文件。static char BASED_CODE file=BMP Files(*.BMP)|*.bmp|所有文件(*.*)|*.*|;SelectFile(FALSE,bmp,NULL,OFN_HIDEREADONLY|OF

17、N_OVERWRITEPROMPT,file,NULL);(2)在”保存为BMP”处进行同样的操作,添加代码:static char BASED_CODE file=BMP Files(*.BMP)|*.bmp|所有文件(*.*)|*.*|;CFileDialog SelectFile(FALSE,bmp,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,file,NULL);(3)给“确定”按钮添加代码:if (hDIB = 0) return;pDIB = (LPSTR) :GlobalLock(HGLOBAL) hDIB);if(m_iGray=0) f

18、ileraw.ReadHuge(pDIB,filesize);else if(m_iBSQ=0)AfxMessageBox( 真彩色BSQ 方式没有实现,由学生添加, MB_OK, 0);return;if(m_iBSQ=1)AfxMessageBox( 真彩色BIL 方式没有实现,由学生添加, MB_OK, 0);return;filebmp.Open(m_sBmpOut,CFile:modeCreate|CFile:modeWrite| CFile:shareExclusive,NULL);if(m_iGray=0)bmpHdr.biBitCount=8;bmfHdr.bfOffBits=

19、1078;/bmfHdr.bfOffBits=14+40+256*4;bmpHdr.biSizeImage=(m_iWidth*8) + 31) / 32 * 4)*m_iHeight;bmfHdr.bfSize=bmfHdr.bfOffBits+bmpHdr.biSizeImage;for(int i=0;i256;i+)rgbi.rgbBlue=i;rgbi.rgbGreen=i;rgbi.rgbRed=i;rgbi.rgbReserved=0; 为”RAW转换位BMP”菜单在视图类里面添加函数:CRawToBmpDlg dlg;dlg.DoModal();创建对话框类CRawToBmpD

20、lg的对象dlg,判断DoModal()函数的返回值为IDOK时,实现raw到bmp的转换。2) 灰度线性变换新建菜单:单击ResourceView选项卡,打开Menu文件夹,在下面一个菜单上双击,增加菜单项“图像增强”,并在此菜单下添加子菜单项“线性变换”。新建对话框:单击ResourceView选项卡,右击Dialog文件夹,选择Insert Dialog。IDD_GRAY_TRANS_DLG Adding a Class 对话框中选择Create a new class,New Class为CGrayLineTransDlg。,增加变量dTGA ,dTGB“线性变换”菜单在文档类里面添加

21、函数:void CDemoDoc: OnTransGray() 核心代码for (long i=0; i 255)x = 255;if (x 0)x = 0;Datasiei = (char)x; 3) 高通滤波和低通滤波对于高通滤波、低通滤波的实现,我分别做了两个默认的滤波器,及一个自定义由用户输入模板中具体的参数值,这样,可以利用一个函数同时实现高通滤波和低通滤波。先是在菜单栏中的“图像增强”中添加“局部增强”这个子菜单,然后再在“局部增强”后,对话框 ID_DIODLG_ANYPASS然后是自定义滤波器的实现,需要设计一个滤波器的对话框,作用是输入自定义的模版。在本程序中设置的是一个最大

22、为3*3的模版。对话框设计好了以后,和前面的做法类似,再给对话框创建相应的类CPassDibDlg。再在视图类的添加头文件#include PassDibDlg.h。最后再在视图类中添加相应的消息响应函数OnPassDib(),实现功能。完成以上操作后,编译运行即可。for (int curCol = 1; curCol 255)x5 = 255;if (x5 0)x5 = 0;NewDatcurIndex = (char)x5;4) 中值滤波算法中用到的是3*3的模板在“图像增强”“局部处理”中添加菜单项:“中值滤波”添加菜单响应函数在一个双层循环体内实现:得到模板每个像素的地址,用模板指向

23、对应影像的像素(用数组和指针实现)curIndex = col * curRow + curCol;x0 = DatcurIndex - col - 1;x1 = DatcurIndex - col;x7 = DatcurIndex + col;x8 = DatcurIndex + col + 1;对x9冒泡法排序得到中心对应原位图的灰度值NewDatcurIndex = (char)x4;最后刷新和保存更改5) 图像的几何变换(旋转、缩放、平移)在“几何变换”菜单下新建菜单项“旋转、缩放、转置”;添加各自的对话框及类CRotateDlg、CEnlargeDlg、CTranslationdib

24、Dlg为每个菜单项添加消息响应函数;void CDemoDoc:OnRotate()、不同的核心部分(循环体部分):1) 旋转double a=dlg.m_iAngle*dlg.m_flag*PI/180;double sina=sin(a),cosa=cos(a);double Ox=(cols-1)/2,Oy=(rows-1)/2;/原点doublesx1=-Ox,sy1=Oy,sx2=Ox,sy2=Oy,sx3=-Oy,sy3=-Oy,sx4=Ox,sy4=-Oy;doubledx1=sx1*cosa+sy1*sina, dy1=-sx1*sina+sy1*cosa,dx4=sx4*co

25、sa+sy4*sina,dy4=-sx4*sina+sy4*cosa;Ncols=(long)(max(fabs(dx1-dx4),fabs(dx3-dx2)+0.5);Nrows=(long)(max(fabs(dy1-dy4),fabs(dy3-dy2)+0.5);核心:for(i=0;iNrows;i+)for(j=0;j=0&y=0&xcols)NewDati*Ncols+j=Daty*cols+x;else NewDati*Ncols+j=(byte) 255;2) 缩放for ( i=0; iNrow; i+)for ( j=0; j0) & (Oldcol0) & (Oldrow

26、row) )Blank= DatOldrow*col+Oldcol ;NewDati*Ncol+j = Blank ;3) 平移for ( i=0; iNrow; i+)for ( j=0; j0) & (Oldcol0) & (Oldrowrow) )NewDati*Ncol+j = DatOldrow*col+Oldcol ;6) 直方图的显示与均衡化void CZFTDlg:OnPaint() CPaintDC dc(this); / device context for paintingdc.MoveTo(100,200);dc.LineTo(100,300);for(int i=0;

27、i256;i+)dc.MoveTo(100+i,300);dc.LineTo(100+i,300-pi/80);在弹出菜单“图像增强”下添加菜单“直方图均衡化”,为菜单设置消息响应函数,在菜单消息响应函数,完成对图像的处理。消息响应函数如下:1、 获取图像信息(长和宽等)2、 双层循环统计各个灰度级像素的个数for(i=0;i256;i+)percentilei=0.0;for(j=0;j=i;j+)percentilei+=Hj;percentilei*=(255.0/(double)(Rows*Cols);3、 计算均衡化后亮度的新值for(r=0;rRows;r+)for(c=0;c25

28、5 ) x5=255;if ( x50 ) x5=0;NewDatcurPos=(char) x5;8) 图像二值化添加二值化的菜单,然后添加“状态法”和“判断分析法”的子菜单;添加子菜单的消息响应函数;计算阈值:状态法:a 定义阈值b 定义并初值化灰度统计数组hist256c 定义类1质量矩和类2质量矩、类1灰度均值和类2灰度均值、迭代次数等d 计算阈值(关键代码) for(r=0;rRows;r+)for(c=0;cgraymax) graymax=gray;if(graygraymin) graymin=gray;nNewThreshold=int(graymin+graymax)/2)

29、;for(int i=0;nThreshold!=nNewThreshold&i100;i+)nThreshold=nNewThreshold;P1=0.0;P2=0.0;S1=0;S2=0;for(k=graymin;k=nNewThreshold;k+)P1+=(double)k*Hk;S1+=Hk;meanvalue1=P1/S1;for(k=nNewThreshold;k=graymax;k+)P2+=(double)k*Hk;S2+=Hk; meanvalue2=P2/S2;nNewThreshold=int(meanvalue1+meanvalue2)/2);判断分析法:a 定义阈

30、值b 定义并初值化灰度统计数组hist256c 定义像素总数、类1像素总数、类2像素总数、总的质量矩和类1质量矩、类1灰度均值和类2灰度均值、类1方差,类2方差,类内方差,类间方差,max表示类间最大差距d计算总的质量矩lP和像素总数lSe 求阈值(关键代码如下)for(i=graymin;i=graymax;i+)IS1+=Hi;if(!IS1)continue;IS2=IS-IS1;if(IS2=0) break;IP1+=(double)i*Hi;IP2=IP-IP1;meanvalue1=IP1/IS1;for(int j=graymin;j=i;j+)Dispersion1+=(j-

31、meanvalue1)*(j-meanvalue1)*Hj;meanvalue2=IP2/IS2;for(int p=i+1;pMaxR)MaxR=R;lMaxWidth=i;lMaxHeight=j;Dat(n+lMaxHeight)*cols+(lMaxWidth+m)=NewDatn*tcols+m;if(n=0|n=trows-1)Dat (n+lMaxHeight)*cols+(lMaxWidth+m)=0;if(m=0|m=tcols-1) Dat (n+lMaxHeight)*cols+(lMaxWidth+m)=0;四、 实习结果分析与评价1) 初始图像2) 将RAW格式图像转

32、换成BMP格式图像1、效果分析:RAW文件是一种记录了数码相机传感器的原始信息。BMP图形文件是Windows采用的图形文件格式, Windows系统内部各图像绘制操作都是以BMP为基础的。我们要用最小的空间存储最大的信息,还要进行一些图像后期的处理,所以要将RAW格式图像转换成BMP格式图像。2、算法评价: 基本的Raw to Bmp的格式转换可以完成,但是仅仅只是针对灰度图像,主要是因为如果Raw文件为真彩色图像,则还要考虑Raw文件的存储方式:BSQ(逐波段存储)、BIL(逐行存储)和BIP(逐像素存储)。这一段没有能够最终实现。3) 图像点运算:灰度线性变换1、 效果分析:在曝光不足或

33、过度的情况下,图像灰度可能会局限在一个很小的范围内。这时在显示器上看到的将是一个模糊不清、灰度层次少的图像。对曝光不足的图像采用线性变换,即对图像每一个像素灰度作线性拉伸,可有效地改善图像视觉效果。线性灰度变换函数是一个一维线性函数:y=ax+b。当a1时,输出的图像的对比度增大;当a1时,输出图像的对比度将减小;当a=1且b!=0时,操作仅仅使所有像素的灰度值上移或下移,其效果是使整个图像更亮或更暗;特殊情况下,如果a=1,fB=0时,输出图像和输入图像相同;当a=-1,b=255时,输出图像的灰度正好反转2、 算法评价: 基本的Raw to Bmp的格式转换可以完成,但是仅仅只是针对灰度图

34、像主要是因为如果Raw文件为真彩色图像,则还要考虑Raw文件的存储方式:BSQ(逐波段存储)、BIL(逐行存储)和BIP(逐像素存储)。这一段没有能够最终实现。3、 改进方向:为了突出感兴趣目标所在的灰度区间,相对抑制那些不感兴趣的灰度区间,可采用分段线性变换。即不同的灰度范围有不同的a和b,就有不同的变换效果。用户可以自己选择不同的灰度区间和变换方式。还可以进行非线性变换。4) 图像局部处理:高通滤波和低通滤波1、 效果分析:低通滤波:为了抑制噪声改善图像质量。降低噪声的同时使图像产生模糊。效果如下:高通滤波:增强图像的边缘或轮廓,使图像边缘突出、清晰。效果如下:2、 算法优点:处理简单方便

35、,不需要输入模板信息即可进行处理,并达到简单的效果。3、 算法缺点:仅仅使用了3*3的模板,模板没有选择性;处理效果没有5*5以及以上的模板效果好。5) 中值滤波1、效果分析:中值滤波法是常用的非线性滤波方法,对消除椒盐噪音非常有效,常用于用来保护边缘信息,是经典的平滑噪声的方法。在平滑脉冲噪声方面非常有效,同时它可以保护图像尖锐的边缘。程序中值滤波效果如下:2、 算法评价:运用简单方便,点击即可完成处、且对细节保护较好6) 图像几何变换:旋转、缩放、平移1、 效果分析:旋转:输入旋转角度,即可对图像进行旋转。缩放:可以通过设置x和y方向不同的缩放比例来进行缩小和放大。平移:按下鼠标左键开始平

36、移,鼠标移动的距离即为平移的距离,放下鼠标左键就完成了平移。转置:点击转置按钮就可以实现功能。2、算法优点:平移运用了橡皮筋技术,可以避免输入移动距离的盲目性来实现平移,使用方便;缩放、旋转只要输入参数即可实现功能;4个算法的总体思路的一样的,首尾的代码是相同的,只是中间循环部分要根据实现的不同功能来进行编程;添加了滚动条,如果变换后宽度和高度超过了窗口,可以用滚动条来浏览全部图像。在此次实习中,熟悉了图像的局部处理。在对图象进行局部处理时,应先开辟临时空间将原图象进行拷贝,然后用模板卷积临时图象,修改原图象的灰度值。在循环时,把当前循环的像素看作是摸板的中心。超过边界的像素应赋0或255。值得注意的是最后应刷新一遍滚动条,一开始我没有意识到这个问题,总是找不见图了7) 边缘检测1、效果分析:Prewitt算子y方向:Sobel算子X方向:从上面的处理可以明显的看出来,x和y方向的检测有

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1