- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数字图像处理均值滤波
实验项目:灰度图像均值滤波
一、实验内容
目的:掌握搭建一个Visual C++应用工程的基本流程,能创建一个基于MFC的Visual C++数字图像处理平台,实现位图文件的读写、显示、存储操作。对灰度图像均值滤波熟悉均值滤波原理,编程实现灰度图像均值滤波功能,探讨其去噪特性及其适用性。
处理算子原理:
二值化:选定一个阈值,大于部分变成白色,小于部分变成黑色。
局部平滑(n*n模版):均等的对待邻域中的每一个像素,将各个像素灰度的平均值作为中心像素值输出。实现图像的平滑。
超限像素平滑:利用局部平滑的模版得到一个平均灰度值与原像素做差取绝对值,在与设定的阈值做比较。大与阈值取平均值,反之取原像素。
有选择保边缘平滑:对一像素的5*5邻域,采用特定的掩模(一个3*3正方形、4个五边形、4个六边形共9个领域)计算各个掩模的均值和方差,按方差进行排序,最小方差对应的掩模灰度均值作为输出值。
通过给定的原始文件编写C++程序,利用平台进行原理和代码的转换,最终实现灰度图像的平滑处理。
二、算法实现的主要内容
二值化:
void CMy0107View::OnBinary()
{
CYuzhi dlg;
dlg.DoModal();
UpdateData(TRUE);
if(m_flag == 24)
{
AfxMessageBox(只处理8位图像!);
return;
}
BYTE *pData = new BYTE[m_dwWidth*m_dwHeight];
BYTE *pOld = pData;
memcpy(pData, m_pBitmap, m_dwWidth*m_dwHeight);
DWORD i,j;
for(i=0;im_dwHeight;i++)
{
for(j=0;jm_dwWidth;j++)
{
if(*pData = dlg.m_yuzhi) *pData = 255;
else *pData = 0;
pData++;
}
}
pData = pOld;
memcpy(m_pBitmap, pData, m_dwWidth*m_dwHeight);
if(pData) delete []pData;
Invalidate(TRUE);
}
3*3均值滤波:
void CMy0107View::On33junzhi()
{
float averg;
BYTE *p_data;
int wide,height;
p_data=m_pBitmap;
wide=m_dwWidth;
height=m_dwHeight;
BYTE* p_temp=new BYTE[wide*height];
int size=wide*height;
memset(p_temp,255,size);
for(int j=1;jheight-1;j++)
{
for(int i=1;iwide-1;i++)
{
averg=0;
averg=(int)(p_data[(j-1)*wide+(i-1)]+p_data[(j-1)*wide+i]
+p_data[(j-1)*wide+(i+1)]+p_data[j*wide+(i-1)]
+p_data[j*wide+i+1]+p_data[(j+1)*wide+(i-1)]
+p_data[(j+1)*wide+i]+p_data[(j+1)*wide+i+1])/8;
p_temp[j*wide+i]=averg;
}
}
memcpy(p_data,p_temp,wide*height);
delete p_temp;
Invalidate(TRUE);
}
N*N均值滤波:
void CMy0107View::OnNnjunzhi()
{
DWORD size;
NNJUNZHI dlg;
dlg.DoModal();
UpdateData(TRUE);
n=dlg.m_n;
int xx,yy,n2,sum,sum2,sum3;
int wide,height;
BYTE *p_data;
p_data=m_pBitmap;
wide=m_dwWidth;
height=m_dwHeight;
size=wide*height;
BYTE* p_temp=new BYTE [size];
memset(p_temp,255,size);
if(n3||n%2!=1)//确认n为奇数
AfxMessageBox(请输入一个大于等
您可能关注的文档
- 教师资格任教学科对照表.doc
- 教师资格考试教育学精选论述题与简答7页.doc
- 教师成长专业阶梯.doc
- 教师资格考试每月一考-国家教师资格考试小学《综合素质》模拟卷.doc
- 教师资格试讲说课稿模板重点.doc
- 教师进职称论文教师职称论文高校人力资源管理与职称评聘研究.doc
- 教师资格面试体育题目解析双手胸前传接球.doc
- 教师教育技能培训课程湖北模块7授导型教学的设计后测答案.doc
- 教师问题行为与学生心理健康关系研究总报告(郑全全浙江大学).doc
- 教您用几何画板绘制圆柱的方法.doc
- 计及电动汽车移动储能动态电价的微电网优化调度研究及解决方案.pdf
- 浅谈电动汽车充电桩绝缘智能化自检装置的设计与应用 .pdf
- 浅谈电动汽车公共充电桩布局方案评价方法.pdf
- 浅谈基于弹性响应的电动汽车快充电价定价策略 汽车充电桩有序充电.pdf
- 浅谈光储充一体化社区的有序充电策略及解决方案.pdf
- 晚期肾透明细胞癌系统性治疗中国专家共识(2024版).pptx
- 中国膀胱癌保膀胱治疗多学科诊治协作共识(2022版).pptx
- 成人心血管外科手术体外循环患者血液管理指南.pptx
- 下尿路修复重建移植物应用规范中国专家共识.pptx
- 中国儿童急性非静脉曲张性上消化道出血诊治指南(2024).pptx
文档评论(0)