LOG滤波器提取边缘报告.DOC

上传人:天*** 文档编号:969892 上传时间:2018-11-10 格式:DOC 页数:6 大小:118KB
下载 相关 举报
LOG滤波器提取边缘报告.DOC_第1页
第1页 / 共6页
LOG滤波器提取边缘报告.DOC_第2页
第2页 / 共6页
LOG滤波器提取边缘报告.DOC_第3页
第3页 / 共6页
LOG滤波器提取边缘报告.DOC_第4页
第4页 / 共6页
LOG滤波器提取边缘报告.DOC_第5页
第5页 / 共6页
点击查看更多>>
资源描述

1、LOG 滤波器提取边缘实验报告朱俊 0220080198一 实验内容1 用 LOG 滤波器提取图像边缘2 比较直接滤波和先缩小原图进行滤波再插补的乘法次数二 实验原理1 LOG 滤波器原理设 I(x,y)代表灰度变化,灰度变化剧烈的地方就是阶跃点,而阶跃点的一次微商为极大值,二次微商为零。因此二次微商为零的地方就是图像的边缘所在。LOG 滤波器是高斯(GAUSS)滤波和拉普拉斯(LAPLACIAN)滤波的结合,即先用高斯滤波器进行平滑滤波,以过虑调噪声,再提取边缘,所以效果较好。2 LOG 滤波器的缺点与解决方法由于 LOG 滤波器的模板宽度一般较大,所以 LOG 滤波缩要进行的计算量也相应较

2、大。设图像尺寸为 NM,模板宽度为 KK,则对整幅图进行卷积的乘法次数为(N-K+1 )*(M-K+)*K*K ,当 N 和 MK 时,所用的乘法次数约为 N*M*K*K。可见乘法次数和模板宽度的平方成正比。事实上,LOG 滤波器可以分解成一只高斯滤波器和另一只模板宽度更小的 LOG 滤波器。另外,由于高斯滤波器是低通的而且可分解的的,所以。可以把原图尺寸缩小后再进行滤波,滤波结束后再进行插补,这样可以大大减少所要做的工作量。三 程序设计程序基于 MFC 的单文档界面,增加一个位图包裹类(设计模式的适配器模式)来封装对位图的操作,增加一个滤波类来进行通用的滤波操作。程序结构如下:位图文件 位图

3、包裹类 滤波器类位图数据滤波后的位图数据视图类显示类定义如下:位图包裹类:class CWrapBitmappublic:long GetSize(); /接口:得到位图大小,成功返回阵列大小,失败返回 falseint GetHeight(); /接口:得到位图高度,成功返回高度,失败返回 falseint GetWidthBytes(); /接口:得到位图比特宽度,成功返回宽度,失败返回 falseint GetWidth(); /接口:得到位图实际宽度,成功返回宽度,失败返回 falseBYTE* GetpBuffer();/接口:得到位图阵列指针,成功返回指针,失败返回 NULLCBi

4、tmap* GetpBitmap();/接口: 得到 CBitmap 类指针. 成功返回指针,失败返回 NULLBOOL Save(LPCTSTR lpszPathName);/接口: 保存位图文件. 成功返回 true,失败返回 falseBOOL Load(LPCTSTR lpszPathName);/接口: 打开位图文件. 成功返回 true,失败返回 falseCWrapBitmap();virtual CWrapBitmap();private:BYTE* m_pBuffer; /位图阵列指针CBitmap m_Bitmap; /位图类HBITMAP m_hBitmap; /打开位图

5、指针protected:HANDLE DDBToDIB(CBitmap /DDB2DIB;滤波器类:const int TEMPLATE_LOG =1; /LOG 滤波器const int TEMPLATE_LAPLACIAN=2; /拉普拉斯滤波器(锐化)const int TEMPLATE_GAUSS =3; /Gauss 滤波器(平滑)class CFilter public:long GetCount(); /接口:得到滤波所用的乘法次数BOOL Filter(const int nDefTemplate,BYTE *pBuffer, DWORD Size,DWORD Width, D

6、WORD Height);/接口: 对二维数组(阵列)滤波. 成功返回 true,失败返回 falseCFilter();virtual CFilter();private:long m_lCount; /记录滤波所用的乘法次数float m_fCoef; /模板系数BYTE m_TemplateWidth; /模板宽度char* m_pTemplate; /模板指针protected:BYTE CutOverflow(float fNum); /截取超出范围的数字void Multiply(BYTE* pBuffer,DWORD Size,DWORD Width,DWORD Height);

7、/模板和阵列的操作void SetTemplate(const int nDefTemplate);/设置模板的参数;四 实验结果与分析实验采取如下图一的灰度图片,图片大小 170375,模板选为 55,如下所示: -2,-4,-4,-4,-2,-4, 0, 8, 0,-4,-4, 8,24, 8,-4,-4, 0, 8, 0,-4,-2,-4,-4,-4,-2经一次 LOG 滤波得结果图二,所用得乘法次数为 1539650,经验证可知1539650(17051)(37551)55,符合前面所推导公式。若先把原图缩小到一半大小(85188) ,再经过高斯滤波,和 LOG 滤波,再插补到原图大小

8、,得结果图三。所用乘法次数为 517816,其中高斯滤波用乘法次数 140616(85131)(18831)33,LOG 滤波用乘法次数 377200(85151)(188-5+1)55。显然大大减少了乘法次数。图一(原图) 图二(LOG 滤波结果) 图三(滤波后插补结果)五 附关键源程序BOOL CFilter:Filter(const int nDefTemplate,BYTE *pBuffer,DWORD Size,DWORD Width, DWORD Height)SetTemplate(nDefTemplate);if(!pBuffer)/Buf 为空return false;if(

9、Width+16)*HeightSize) /非 8 位色彩的位图/MYTODO:转化到 8 位AfxMessageBox(“不支持非 256 色位图“);/return false;Multiply(pBuffer,Size,Width,Height);return true;void CFilter:SetTemplate(const int nDefTemplate)if(m_pTemplate)delete m_pTemplate;switch(nDefTemplate)case TEMPLATE_LOG:m_TemplateWidth=5;m_fCoef=1;BYTE btTempl

10、ateSize=m_TemplateWidth*m_TemplateWidth;m_pTemplate=new charbtTemplateSize;char btTemp25=-2,-4,-4,-4,-2,-4, 0, 8, 0,-4,-4, 8,24, 8,-4,-4, 0, 8, 0,-4,-2,-4,-4,-4,-2;:memcpy(m_pTemplate,break;case TEMPLATE_LAPLACIAN:m_TemplateWidth=3;m_fCoef=1;BYTE btTemplateSize=m_TemplateWidth*m_TemplateWidth;m_pTem

11、plate=new charbtTemplateSize;char btTemp9=-1,-1,-1,-1,9,-1,-1,-1,-1;:memcpy(m_pTemplate,break;case TEMPLATE_GAUSS:m_TemplateWidth=3;m_fCoef=1/16.0;/不能 1/16,否则会变成 0BYTE btTemplateSize=m_TemplateWidth*m_TemplateWidth;m_pTemplate=new charbtTemplateSize;char btTemp9=1,2,1,2,4,2,1,2,1;:memcpy(m_pTemplate

12、,break;default:TRACE(“没有该默认的模板“);void CFilter:Multiply(BYTE *pBuffer, DWORD Size, DWORD Width, DWORD Height)int nBorder=m_TemplateWidth/2; /需要空开的大小DWORD dwOffset=0;float fResult=0;int nTempNum=0;BYTE* pTempBuffer=new BYTESize;for(DWORD y=0+nBorder;y255.0)return (BYTE)255;else if(fNum0.0)return (BYTE)0;elsereturn (BYTE)fNum;long CFilter:GetCount()return m_lCount;学生:朱俊 0220080198

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 重点行业资料库 > 1

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。