数字图像处理实验三中值滤波和均值滤波实验报告

更新时间:2023-07-20 18:38:04 阅读: 评论:0

数字图像处理实验三
均值滤波、中值滤波的计算机实现
12281166 崔雪莹计科 1202
一、实验目的:
1)熟悉均值滤波、中值滤波处理的理论基础;
2)掌握均值滤波、中值滤波的计算机实现方法;
3)学习 减函数的定义VC++ 60 的编程方法;
4)验证均值滤波、中值滤波处理理论;
5)观察均值滤波、中值滤波处理的结果。
二、实验的软、硬件平台:
硬件:微型图像处理系统,包括:主机,    PC机;摄像机;
软件:操作系统:WINDOWS2000WINDOWSXP应用软件:VC++ 6.0
三、实验内容:
1)握高级语言编程技术;
2)    编制均值滤波、中值滤波处理程序的方法;
3)    编译并生成可执行文件;
4)    考察处理结果。
四、实验要求:
1)    学习VC+60编程的步骤及流程;
2)    编写均值滤波、中值滤波的程序;
3)    编译并改错;
4)    把该程序嵌入试验二给出的界面中(作适当修改);
5)    提交程序及文档;
6)    写出本次实验的体会。
五、实验结果截图
实验均值滤波采用的是3X3的方块,取周围的像素点取得其均 值代替原像素点。边缘像素的处理方法是复制边缘的像素点,增 加一个边框,计算里面的像素值得均值滤波。
登幽州台歌的翻译
均值氓浜
薛之谦离婚
1W
六、    实验体会
本次实验在前一次的实验基础上增加均值滤波和中值滤波,    对于
椒盐噪声的处理,发现中值滤波的效果更为好一点,    而均值滤波是的
整个图像变得模糊了一点,效果差异较大。本次实验更加增加了对数 字图像处理的了解与学习。
七、    实验程序代码注释及分析
// HistDemoADIg.h :头文件
//
#in elude "ImageWnd.h"
#pragma once
// CHistDemoADIg 对话框
classCHistDemoADIg : public CDialogEx
{
//构造
public:
CHistDemoADlg(CWnd* pParent = NULL); // 标准构造函数 intnWidth;
intnHeight;
intnLen;
intnByteWidth;
BYTE *lpBackup;
BYTE *lpBitmap;
BYTE *lpBits;
CStringFileName;
CImageWndsource,dest;
// 对话框数据 enum { IDD = IDD_HISTDEMOA_DIALOG };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
// 实现
protected:
HICON m_hIcon;
// 生成的消息映射函数
virtual BOOL OnInitDialog();
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
DECLARE_MESSAGE_MAP()
public:
voidLoadBitmap(void);
afx_msg void OnOpen();
afx_msg void OnHist();
voidHistogramEq(void);
voidNoColor(void);
void HistogramEq1(intnWidth,intnHeight,BYTE *lpInput,BYTE *lpOutput); voidMeanFilter(intnWidth,intnHeight,BYTE *lpInput,BYTE *lpOutput); voidMedianFilter(intnWidth,intnHeight,BYTE *lpInput,BYTE *lpOutput); afx_msg void OnBnClickedClo();
afx_msg void OnBnClickedMeanfilter();
afx_msg void OnBnClickedMedianfilter();
};
HistDemoADlg.cpp HistDemoADlg.h 进行具体的实现, OnOpen() 函数响应 ID
IDC_OPEN的按钮事件,而且会调取文件选择对话框,选取文件之后,会显 示在原始图像区域显示对应的位图图像,    珍珠魟OnHist()函数会响应IDIDC_HIST
的按钮事件,调用 HistogramEq()进行直方图均衡化的处理,    HistogramEq()
调用HistogramEq1()进行直方图均衡化的处理,并用    dst.tlmage()显示处理
之后的图像,以及 NoColor()函数,对原始图像转化为灰度图像之后再显示。
// HistDemoADlg.cpp : 实现文件
//
#include "stdafx.h"
#include "HistDemoA.h"
#include "HistDemoADlg.h"
成绩查
#include "afxdialogex.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
#define Point(x,y) lpPoints[(x)+(y)*nWidth]
#define Point1(x,y) lpPoints1[(x)+(y)*nWidth]
// 用于应用程序“关于”菜单项的 CAboutDlg 对话框
classCAboutDlg : public CDialogEx
{如何关闭开发者模式
public:
CAboutDlg();
// 对话框数据
enum { IDD = IDD_ABOUTBOX };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持 // 实现
protected:
DECLARE_MESSAGE_MAP()
};
CAboutDlg::CAboutDlg() : CDialogEx(CAboutDlg::IDD)
voidCAboutDlg::DoDataExchange(CDataExchange* pDX) {
CDialogEx::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CAboutDlg, CDialogEx) END_MESSAGE_MAP() // CHistDemoADlg 对话框
CHistDemoADlg::CHistDemoADlg(CWnd* pParent /*=NULL*/)
: CDialogEx(CHistDemoADlg::IDD, pParent)
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
lpBitmap = 0; lpBackup = 0;
}
voidCHistDemoADlg::DoDataExchange(CDataExchange* pDX)
{ CDialogEx::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CHistDemoADlg, CDialogEx)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDC_OPEN, &CHistDemoADlg::OnOpen) ON_BN_CLICKED(IDC_HIST, &CHistDemoADlg::OnHist) ON_BN_CLICKED(IDCLOSE, &CHistDemoADlg::OnBnClickedClo) ON_BN_CLICKED(IDC_MEANFILTER, &CHistDemoADlg::OnBnClickedMeanfilter) ON_BN_CLICKED(IDC_MEDIANFILTER, &CHistDemoADlg::OnBnClickedMedianfilter)
END_MESSAGE_MAP() // CHistDemoADlg 消息处理程序
BOOL CHistDemoADlg::OnInitDialog()
{
CDialogEx::OnInitDialog();
// 将“关于 ...”菜单项添加到系统菜单中。
// IDM_ABOUTBOX 必须在系统命令范围内。
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
BOOL bNameValid;
CStringstrAboutMenu;
回忆童年作文
bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);
ASSERT(bNameValid);
if (!strAboutMenu.IsEmpty())
{ pSysMenu->AppendMenu(MF_SEPARATOR); pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
// 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动
// 执行此操作
SetIcon(m_hIcon, TRUE); // 设置大图标
SetIcon(m_hIcon, FALSE); // 设置小图标狼行千里吃肉
// TODO: 在此添加额外的初始化代码 source.Create(0,L"Source",WS_CHILD|WS_VISIBLE,CRect(40,40,360,280),this,10 000);
dest.Create(0,L"Destination",WS_CHILD|WS_VISIBLE,CRect(400,40,720,280),this ,10001);
return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
}
voidCHistDemoADlg::OnSysCommand(UINT nID, LPARAM lParam)

本文发布于:2023-07-20 18:38:04,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1089448.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:滤波   实验   均值   处理
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图