- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
用VC实现数字图像处理
数字图像处理设计
一. 设计题目
基于VC++的数字图像处理
二.设计要求
1.图像平滑处理的编程实现:在空域中,分别用邻域平均法和中值滤波法实现图像的平滑处理。
2.图像锐化处理的编程实现:在空域中,分别用梯度法和Laplace算子法实现图像的锐化处理。
三.设计原理
图像增强不考虑图像质量下降的原因。只将图像中感兴趣的特征有选择的突出。而衰减不需要的特征?.它的目的主要是提高图像的可懂度。图像增强的方法分为空域法和频域法两类,空域法主要是对图像中的各个像素点进行操作,而频域法是在图像的某个变换域内,对图像进行操作,修改变换后的系数,例如付立叶变换、DCT 变换等的系数,然后再进行反变换得到处理后的图像。图像复原技术与增强技术不同,它需要了解图像质量下降的原因。
四.源程序清单
#include stdafx.h
#include DIPDemo.h
#include DIPDemoDoc.h
#include DIPDemoView.h
#include mainfrm.h
#include DlgSmooth.h
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CDIPDemoView
IMPLEMENT_DYNCREATE(CDIPDemoView, CScrollView)
BEGIN_MESSAGE_MAP(CDIPDemoView, CScrollView)
//{{AFX_MSG_MAP(CDIPDemoView)
ON_COMMAND(ID_ENHA_SMOOTH, OnEnhaSmooth)
ON_COMMAND(ID_ENHA_GRADSHARP, OnEnhaGradsharp)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CDIPDemoView construction/destruction
CDIPDemoView::CDIPDemoView()
: m_bLBtnDblClkSrv(0)
{
// TODO: add construction code here
}
CDIPDemoView::~CDIPDemoView()
{
}
/////////////////////////////////////////////////////////////////////////////
// CDIPDemoView drawing
void CDIPDemoView::OnDraw(CDC* pDC)
{
// 显示等待光标
BeginWaitCursor();
// 获取文档
CDIPDemoDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if(pDoc-m_Image.IsValidate())
{
CPalette* pOldPalette;
CPalette* pPalette = pDoc-GetDocPalette();
if(pPalette!=NULL)
{
pOldPalette = pDC-SelectPalette(pPalette, FALSE);
pDC-RealizePalette(); //更新系统调色板
}
pDoc-m_Image.Draw(pDC); //绘制图像
if(pPalette!=NULL)
pDC-SelectPalette(pOldPalette, FALSE);
}
// 恢复正常光标
EndWaitCursor();
}
void CDIPDemoView::OnEnhaSmooth()
{
// 图像平滑
// 获取文档
CDIPDemoDoc* pDoc = GetDocument();
// 输入对象
CImgProcess imgInput = pDoc-m_Image;
// 检查图像是灰度图
if (imgInput.m_pBMIH-biBitCount!=8)
{
AfxMessageBox(不是8-bpp灰度图像,无法处理!);
re
文档评论(0)