• PUDN用户
    了解作者
  • matlab
    开发工具
  • 22KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 4
    下载次数
  • 2013-08-02 20:57
    上传日期
中值滤波,在图像中取出噪声,中值滤波,在图像中取出噪声,
wanweichongjian.rar
  • ImageBrowser
  • res
  • Toolbar.bmp
    1.5KB
  • MITKTest.rc2
    400B
  • MITKTest.ico
    1.1KB
  • MITKTestDoc.ico
    1.1KB
  • StdAfx.h
    1KB
  • MITKTest.dsp
    4.9KB
  • MITKTest.rc
    15.3KB
  • MITKTest.dsw
    539B
  • MainFrm.cpp
    2.5KB
  • MITKTestView.cpp
    5.5KB
  • MITKTestDoc.cpp
    10.5KB
  • MainFrm.h
    1.5KB
  • MITKTest.h
    1.3KB
  • MITKTestView.h
    2.2KB
  • Resource.h
    1.8KB
  • SpacingSetDlg.h
    1.3KB
  • RawSetDlg.cpp
    3.3KB
  • SpacingSetDlg.cpp
    1.1KB
  • MITKTest.cpp
    4.1KB
  • MITKTestDoc.h
    1.8KB
  • StdAfx.cpp
    210B
  • RawSetDlg.h
    1.4KB
  • www.pudn.com.txt
    218B
内容介绍
// MITKTestDoc.cpp : implementation of the CMITKTestDoc class // #include "stdafx.h" #include "MITKTest.h" #include "MITKTestDoc.h" #include "SpacingSetDlg.h" #include "RawSetDlg.h" #include "mitkVolume.h" #include "mitkIM0Reader.h" #include "mitkJPEGReader.h" #include "mitkDICOMReader.h" #include "mitkTIFFReader.h" #include "mitkBMPReader.h" #include "mitkRawReader.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CMITKTestDoc IMPLEMENT_DYNCREATE(CMITKTestDoc, CDocument) BEGIN_MESSAGE_MAP(CMITKTestDoc, CDocument) //{{AFX_MSG_MAP(CMITKTestDoc) ON_COMMAND(ID_FILE_OPEN_BMP, OnFileOpenBmp) ON_COMMAND(ID_FILE_OPEN_DICOM, OnFileOpenDicom) ON_COMMAND(ID_FILE_OPEN_IM0, OnFileOpenIm0) ON_COMMAND(ID_FILE_OPEN_JPEG, OnFileOpenJpeg) ON_COMMAND(ID_FILE_OPEN_RAW, OnFileOpenRaw) ON_COMMAND(ID_FILE_OPEN_TIFF, OnFileOpenTiff) ON_COMMAND(ID_FILE_OPEN, OnFileOpen) ON_COMMAND(ID_FILE_SAVE, OnFileSave) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CMITKTestDoc construction/destruction CMITKTestDoc::CMITKTestDoc() { // TODO: add one-time construction code here m_Volume = NULL; //初始化指针变量 } CMITKTestDoc::~CMITKTestDoc() { this->clearVolume(); //清理Volume数据 } BOOL CMITKTestDoc::OnNewDocument() { if (!CDocument::OnNewDocument()) return FALSE; // TODO: add reinitialization code here // (SDI documents will reuse this document) return TRUE; } ///////////////////////////////////////////////////////////////////////////// // CMITKTestDoc serialization void CMITKTestDoc::Serialize(CArchive& ar) { if (ar.IsStoring()) { // TODO: add storing code here } else { // TODO: add loading code here } } ///////////////////////////////////////////////////////////////////////////// // CMITKTestDoc diagnostics #ifdef _DEBUG void CMITKTestDoc::AssertValid() const { CDocument::AssertValid(); } void CMITKTestDoc::Dump(CDumpContext& dc) const { CDocument::Dump(dc); } #endif //_DEBUG ///////////////////////////////////////////////////////////////////////////// // CMITKTestDoc commands void CMITKTestDoc::clearVolume() { if (m_Volume) { // 解除引用 m_Volume->RemoveReference(); // 这时候的m_Volume是无意义的指针,应将其置为NULL m_Volume = NULL; } } void CMITKTestDoc::OnFileOpenBmp() { // TODO: Add your command handler code here // 生成打开文件对话框(可以选择多个文件) CFileDialog dlg(TRUE, ".bmp", NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT | OFN_ALLOWMULTISELECT, "BMP文件(*.bmp)|*.bmp||", NULL); char *fileNamesBuf = new char[512 * _MAX_PATH]; fileNamesBuf[0] = '\0'; DWORD maxBytes = 512 * _MAX_PATH; dlg.m_ofn.lpstrFile = fileNamesBuf; dlg.m_ofn.nMaxFile = maxBytes; if (dlg.DoModal() == IDOK) { // 弹出设置像素间距的对话框 CSpacingSetDlg setDlg; if (setDlg.DoModal() == IDCANCEL) return; // 生成一个mitkBMPReader mitkBMPReader *reader = new mitkBMPReader; // 根据对话框中的数据设置像素间距 reader->SetSpacingX(setDlg.m_SpacingX); reader->SetSpacingY(setDlg.m_SpacingY); reader->SetSpacingZ(setDlg.m_SpacingZ); // 得到所有选中文件的文件名,加入到reader中。 // 各个切片在Volume中是有排列次序的,对于BMP文件来说,次序信息只能从文件名得到, // 但为简便起见,这儿省去了对文件名进行排序的过程 POSITION pos = dlg.GetStartPosition(); while (pos) reader->AddFileName(dlg.GetNextPathName(pos)); // 运行reader if (reader->Run()) { // 若无错误发生,则清除旧的数据,加载新的数据 this->clearVolume(); m_Volume = reader->GetOutput(); m_Volume->AddReference(); //重要! // 更新View中的显示 this->UpdateAllViews(NULL); } // 删除reader reader->Delete(); } delete []fileNamesBuf; } void CMITKTestDoc::OnFileOpenDicom() { // TODO: Add your command handler code here // 生成打开文件对话框(可以选择多个文件) CFileDialog dlg(TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT | OFN_ALLOWMULTISELECT, "DICOM文件(*.*)|*.*||", NULL); char *fileNamesBuf = new char[512 * _MAX_PATH]; fileNamesBuf[0] = '\0'; DWORD maxBytes = 512 * _MAX_PATH; dlg.m_ofn.lpstrFile = fileNamesBuf; dlg.m_ofn.nMaxFile = maxBytes; if (dlg.DoModal() == IDOK) { // 生成一个mitkDICOMReader mitkDICOMReader *reader = new mitkDICOMReader; // 得到所有选中文件的文件名,加入到reader中。 // DICOM文件本身包含了切片的位置信息,mitkDICOMReader会根据相关信息 // 对切片进行重排,所以这里只需要把文件名直接加入进去就可以了。 POSITION pos = dlg.GetStartPosition(); while (pos) reader->AddFileName(dlg.GetNextPathName(pos)); // 运行reader if (reader->Run()) { // 若无错误发生,则清除旧的数据,加载新的数据 this->clearVolume(); m_Volume = reader->GetOutput(); m_Volume->AddReference(); //重要! // 更新View中的显示 this->UpdateAllViews(NULL); } // 删除reader reader->Delete(); } delete []fileNamesBuf; } void CMITKTestDoc::OnFileOpenIm0() { // TODO: Add your command handler code here // 生成打开文件对话框 CFileDialog dlg(TRUE, ".im0", NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, "IM0文件(*.im0)|*.im0||", NULL); if (dlg.DoModal() == IDOK) { // 生成一个mitkIM0Reader mitkIM0Reader *reader = new mitkIM0Reader; // 一个IM0文件就包含一个Volume,只需加一个文件名 reader->AddFileName(dlg.GetPathName()); // 运行reader if (reader->Run()) { // 若无错误发生,则清除旧的数据,加载新的数据 this->clearVolume(); m_Volume = reader->GetOutput(); m_Volume->AddReference(); //重要! // 更新View中的显示 this->UpdateAllViews(NULL); } // 删除reader reader->Delete(); } } void CMITKTestDoc::OnFileOpenJpeg() { // TODO: Add your command handler code here // 生成打开文件对话框(可以选择多个文件) CFileDialog dlg(TRUE, ".jpg", NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT | OFN_ALLOWMULTISELECT, "JPEG文件(*.jpeg;*.jpg)|*.jpeg;*.jpg||", NULL); if (dlg.DoModal() == IDOK) { // 弹出设置像素间距的对话框 CSpacingSetDlg setDlg; if (setDlg.DoModal() == IDCANCEL) return; // 生成一个mitkJPEGReader mitkJPEGReader *reader = new mitkJPEGReader; // 根据对话框中的数据设置像素间距 reader->SetSpacingX(setDlg.m_SpacingX); reader->SetSpacingY(setDlg.m_SpacingY); reader->SetSpacingZ(setDlg.m_SpacingZ); // 得到所有选中文件的文件名,加入到reader中。 // 各个切片在Volume中是有排列次序的,对于JPEG文件来说,次序信息只能从文件名得到, // 但为简便起见,这儿省去了对文件名进行排序的过程 POSITION pos = dlg.GetStartPosition(); while (pos) reader->AddFileName(dlg.GetNextPathName(pos)); // 运行reader if (reader->Run()) { // 若无错误发生,则清除旧的数据,加载新的数据 this->clearVolume(); m_Volume = reader->GetOutput(); m_Volume->AddReference(); //重要! // 更新View中的显示 this->UpdateAllViews(NULL); } // 删除reader reader->Delete(); } } void CMITKTestDoc::OnFileOpenRaw() { // TODO: Add your command handler code here // 生成打开文件对话框 CFileDialog dlg(TRUE, ".raw", NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, "Raw文件(*.raw;*.*)|*.raw;*.*||", NULL); if (dlg.DoModal() == IDOK) { // 弹出参数设置对话框 CRawSetDlg setDlg; if (setDlg.DoModal() == IDCANCEL) return; // 生成一个mitkRawReader mitkRawReader *reader = new mitkRawReader; // 根据对话框中的数据设置读取图像的参数 // 图像的尺寸以及切片数 reader->SetWidth(setDlg.m_Width); reader->SetHeight(setDlg.m_Height); reader->S
评论
    相关推荐
    • 中值滤波matlab代码
      用于图像增强技术的中值滤波matlab的代码
    • matlab 平滑滤波中值滤波
      matlab 平滑滤波 中值滤波 matlab 平滑滤波 中值滤波
    • Matlab中值滤波
      采用5*5窗口进行排序,然后取中值以达到滤波使图像平滑的目的,本例添加随机椒盐噪声,然后进行滤波
    • 自适应中值滤波 MATLAB程序
      自适应中值滤波 MATLAB程序 滤波效果很好 自适应中值滤波 滤波效果很好
    • MATLAB中值滤波图像处理GUI
      MATLAB中值滤波图像处理,GUI界面加.m文件
    • 中值滤波 matlab
      分别在2幅灰度图像中加入一定量的高斯噪声和椒盐噪声,然后采用3×3的均 值滤波器和3×3中值滤波器分别对噪声...仿效“中值滤波”的方法,对原图像分别进行“极大值滤 波”和“极小值滤波”,对所形成的图像给出说明。
    • matlab中值滤波
      matlab中值滤波程序,此程序主要是对二维图像进行滤波
    • 改进的中值滤波MATLAB程序
      改进的中值滤波程序,测试后能有效滤除各种噪音,如高斯,椒盐等,比单一的中值滤波效果显著,此为中值滤波函数的M文件,用时需要自己编写主程序调用此函数即可。
    • 中值滤波matlab实现.zip
      中值滤波matlab实现,线型,十字形(星型),方形滤波形式实现
    • 中值滤波matlab程序
      matlab下的中值滤波技术,可以直接运行 matlab下的中值滤波技术,可以直接运行 matlab下的中值滤波技术,可以直接运行 matlab下的中值滤波技术,可以直接运行