ImageVerifierCode 换一换
格式:DOCX , 页数:8 ,大小:17.55KB ,
资源ID:2373141      下载积分:20 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-2373141.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(中值和均值滤波算法.docx)为本站会员(ng****60)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

中值和均值滤波算法.docx

1、作业:对 lean.raw 文件,采用中值滤波和均值滤波,完成图象去噪 中值滤波: /* * * 函数名称: * MedianFilter() * * 参数 : * LPSTR lpDIBBits - 指向源 DIB 图像指针 * LONG lWidth - 源图像宽度(象素数) * LONG lHeight - 源图像高度(象素数) * int iFilterH - 滤波器的高度 * int iFilterW - 滤波器的宽度 * int iFilterMX - 滤波器的中心元素 X 坐标 * int iFilterMY - 滤波器的中心元素 Y 坐标 * * 返回值 : * BOOL -

2、成功返回 TRUE,否则返回 FALSE。 * * 说明 : * 该函数对 DIB 图像进行中值滤波。 * */ BOOL WINAPI MedianFilter(LPSTR lpDIBBits, LONG lWidth, LONG lHeight, int iFilterH, int iFilterW, int iFilterMX, int iFilterMY) / 指向源图像的指针 unsigned char* lpSrc; / 指向要复制区域的指针 unsigned char* lpDst; / 指向复制图像的指针 LPSTR lpNewDIBBits; HLOCAL hNewDIBBi

3、ts; / 指向滤波器数组的指针 unsigned char * aValue; HLOCAL hArray; / 循环变量 LONG i; LONG j; LONG k; LONG l; / 图像每行的字节数 LONG lLineBytes; / 计算图像每行的字节数 lLineBytes = WIDTHBYTES(lWidth * 8); / 暂时分配内存,以保存新图像 hNewDIBBits = LocalAlloc(LHND, lLineBytes * lHeight); / 判断是否内存分配失败 if (hNewDIBBits = NULL) / 分配内存失败 return FALS

4、E; / 锁定内存 lpNewDIBBits = (char * )LocalLock(hNewDIBBits); / 初始化图像为原始图像 memcpy(lpNewDIBBits, lpDIBBits, lLineBytes * lHeight); / 暂时分配内存,以保存滤波器数组 hArray = LocalAlloc(LHND, iFilterH * iFilterW); / 判断是否内存分配失败 if (hArray = NULL) / 释放内存 LocalUnlock(hNewDIBBits); LocalFree(hNewDIBBits); / 分配内存失败return FALS

5、E; / 锁定内存 aValue = (unsigned char * )LocalLock(hArray); / 开始中值滤波 / 行(除去边缘几行) for(i = iFilterMY; i bArrayi + 1) / 互换 bTemp = bArrayi; bArrayi = bArrayi + 1; bArrayi + 1 = bTemp; / 计算中值 if (iFilterLen else / 数组有偶数个元素,返回中间两个元素平均值 bTemp = (bArrayiFilterLen / 2 + bArrayiFilterLen / 2 + 1) / 2; / 返回中值 ret

6、urn bTemp; / 9 / 中值滤波算法处理 10 / 11 / 原始图片 12 / 是否是彩色位图 13 / 过滤半径 14 public Bitmap ColorfulBitmapMedianFilterFunction(Bitmap srcBmp, int windowRadius,bool IsColorfulBitmap) 15 16 if (windowRadius 72 / 对矩阵 M 进行中值滤波 73 / 74 / 矩阵 M 75 / 过滤半径 76 / 结果矩阵 77 private byte, MedianFilterFunction(byte, m, int wi

7、ndowRadius) 78 79 int width = m.GetLength(0); 80 int height = m.GetLength(1); 81 82 byte, lightArray = new bytewidth, height; 83 84 /开始滤波 85 for (int i = 0; i width - 1) rectWindow.Width = width - 1 -rectWindow.Left; 94 if (rectWindow.Bottom height - 1) rectWindow.Height = height - 1 -rectWindow.Top

8、; 95 /将窗口中的颜色取到列表中 96 List windowPixelColorList = new List(); 97 for (int oi = rectWindow.Left; oi = rectWindow.Right - 1; oi+) 98 99 for (int oj = rectWindow.Top; oj = rectWindow.Bottom - 1; oj+) 100 101 windowPixelColorList.Add(moi, oj); 102 103 104 /排序 105 windowPixelColorList.Sort(); 106 /取中值 10

9、7 byte middleValue = 0; 108 if (windowRadius * windowRadius) % 2 = 0) 109 110 /如果是偶数 111 middleValue = Convert.ToByte(windowPixelColorListwindowPixelColorList.Count / 2 + windowPixelColorListwindowPixelColorList.Count / 2 - 1) / 2); 112 113 else 114 115 /如果是奇数 116 middleValue = windowPixelColorList(

10、windowPixelColorList.Count - 1) / 2;117 118 /设置为中值 119 lightArrayi, j = middleValue;120 121 122 return lightArray; 123 MATLAB 算法实现的方法一个均值滤波的例子: I=imread(cameraman.tif);%读入图像 J=imnoise(I,salt %给图像添加椒盐噪声 K=imnoise(I,gaussian,0,0.005);%给图像添加均值为 0,方差为 0.005 的高斯噪声subplot(231),imshow(I) title(原图像) subplot

11、(232),imshow(J) title(添加椒盐噪声图像) subplot(233),imshow(K) title(添加高斯噪声图像) subplot(234),imshow(I) title(原图像) K1=filter2(fspecial(average,3),J)/255;%使用 33 模板均值滤波 subplot(235),imshow(K1)title(3*3 椒盐噪声均值滤波 ) K2=filter2(fspecial(average,3),K)/255;%使用 33 模板均值滤波 subplot(236),imshow(K2)title(3*3 高斯噪声均值滤波 )一个中值

12、滤波的例子: I=imread(cameraman.tif);%读入图像 J=imnoise(I,salt %给图像添加椒盐噪声 K=imnoise(I,gaussian,0,0.005);%给图像添加均值为 0,方差为 0.005 的高斯噪声 subplot(231),imshow(I) title(原图像) subplot(232),imshow(J) title(添加椒盐噪声图像) subplot(233),imshow(K) title(添加高斯噪声图像) subplot(234),imshow(I) title(原图像) K1=medfilt2(J,3,3);%使用 33 模板中值滤

13、波 subplot(235),imshow(K1) title(3*3 椒盐噪声中值滤波) K2=medfilt2(K,3,3);%使用 33 模板中值滤波 subplot(236),imshow(K2) title(3*3 高斯噪声中值滤波)3、均值滤波与中值滤波的对比 I=imread(cameraman.tif);%读入图像 J=imnoise(I,salt %给图像添加椒盐噪声 K=imnoise(I,gaussian,0,0.005);%给图像添加均值为 0,方差为 0.005 的高斯噪声subplot(331),imshow(I) title(原图像) subplot(332),i

14、mshow(J) title(添加椒盐噪声图像) subplot(333),imshow(K) title(添加高斯噪声图像) subplot(334),imshow(I) title(原图像) K1=filter2(fspecial(average,3),J)/255;%使用 33 模板均值滤波 subplot(335),imshow(K1)title(3*3 椒盐噪声均值滤波 ) K2=filter2(fspecial(average,3),K)/255;%使用 33 模板均值滤波 subplot(336),imshow(K2)title(3*3 高斯噪声均值滤波 ) subplot(337),imshow(I) title(原图像) K3=medfilt2(J,3,3);%使用 33 模板中值滤波 subplot(338),imshow(K3) title(3*3 椒盐噪声中值滤波) K4=medfilt2(K,3,3);%使用 33 模板中值滤波 subplot(339),imshow(K4) title(3*3 高斯噪声中值滤波)

Copyright © 2018-2021 Wenke99.com All rights reserved

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

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

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