资源简介
为了提高图像分割的抗噪声性能,对传统fcm算法进行了改进
代码片段和文件信息
// cdib.cpp
// new version for WIN32
#include “stdafx.h“
#include “cdib.h“
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
IMPLEMENT_SERIAL(CDib Cobject 0);
CDib::CDib()
{
m_hFile = NULL;
m_hBitmap = NULL;
m_hPalette = NULL;
m_nBmihAlloc = m_nImageAlloc = noAlloc;
Empty();
}
CDib::CDib(CSize size int nBitCount)
{
m_hFile = NULL;
m_hBitmap = NULL;
m_hPalette = NULL;
m_nBmihAlloc = m_nImageAlloc = noAlloc;
Empty();
ComputePaletteSize(nBitCount);
m_lpBMIH = (LPBITMAPINFOHEADER) new
char[sizeof(BITMAPINFOHEADER) + sizeof(RGBQUAD) * m_nColorTableEntries];
m_nBmihAlloc = crtAlloc;
m_lpBMIH->biSize = sizeof(BITMAPINFOHEADER);
m_lpBMIH->biWidth = size.cx;
m_lpBMIH->biHeight = size.cy;
m_lpBMIH->biPlanes = 1;
m_lpBMIH->biBitCount = nBitCount;
m_lpBMIH->biCompression = BI_RGB;
m_lpBMIH->biSizeImage = 0;
m_lpBMIH->biXPelsPerMeter = 0;
m_lpBMIH->biYPelsPerMeter = 0;
m_lpBMIH->biClrUsed = m_nColorTableEntries;
m_lpBMIH->biClrImportant = m_nColorTableEntries;
ComputeMetrics();
memset(m_lpvColorTable 0 sizeof(RGBQUAD) * m_nColorTableEntries);
//m_lpImage = NULL; // no data yet err?
m_lpImage=(LPBYTE) new char[((long int) size.cx)*size.cy*(nBitCount/8)];
m_nImageAlloc = crtAlloc;
}
CDib::~CDib()
{
Empty();
}
CSize CDib::GetDimensions()
{
if(m_lpBMIH == NULL) return CSize(0 0);
return CSize((int) m_lpBMIH->biWidth (int) m_lpBMIH->biHeight);
}
BOOL CDib::AttachMapFile(const char* strPathname BOOL bShare) // for reading
{
/* // if we open the same file twice Windows treats it as 2 separate files
// doesn‘t work with rare BMP files where # palette entries > biClrUsed
HANDLE hFile = ::CreateFile((LPCWSTR)strPathname GENERIC_WRITE | GENERIC_READ
bShare ? FILE_SHARE_READ : 0
NULL OPEN_EXISTING FILE_ATTRIBUTE_NORMAL NULL);
ASSERT(hFile != INVALID_HANDLE_VALUE);
DWORD dwFileSize = ::GetFileSize(hFile NULL);
HANDLE hMap = ::CreateFileMapping(hFile NULL PAGE_READWRITE 0 0 NULL);
DWORD dwErr = ::GetLastError();
if(hMap == NULL)
{
AfxMessageBox(L“Empty bitmap file“);
return FALSE;
}
LPVOID lpvFile = ::MapViewOfFile(hMap FILE_MAP_WRITE 0 0 0); // map whole file
ASSERT(lpvFile != NULL);
if(((LPBITMAPFILEHEADER) lpvFile)->bfType != 0x4d42)
{
AfxMessageBox(L“Invalid bitmap file“);
DetachMapFile();
return FALSE;
}
AttachMemory((LPBYTE) lpvFile + sizeof(BITMAPFILEHEADER));
m_lpvFile = lpvFile;
m_hFile = hFile;
m_hMap = hMap;
*/ return TRUE;
}
BOOL CDib::CopyToMapFile(const char* strPathname)
{
// copies DIB to a new file releases prior pointers
/* // if you previously used CreateSection the HBITMAP will be NULL (and unusable)
BITMAPFILEHEADER bmfh;
bmfh.bfType = 0x4d42; // ‘BM‘
bmfh.bfSize = m_dwSizeImage + sizeof(BITMAPINFOHEADER) +
sizeof(RGBQUAD) * m_nColorTableEntries + sizeof(BITMAPFILEHEADER);
// meaning
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1327158 2006-04-17 20:34 改进的fcm算法\Blood.bmp
文件 16532 2009-10-09 11:24 改进的fcm算法\cdib.cpp
文件 1901 2008-05-16 20:35 改进的fcm算法\cdib.h
文件 1533 2015-05-06 19:19 改进的fcm算法\ChildFrm.cpp
文件 1397 2015-05-06 19:19 改进的fcm算法\ChildFrm.h
文件 40824 2015-06-30 17:30 改进的fcm算法\Debug\cdib.obj
文件 0 2015-06-30 17:30 改进的fcm算法\Debug\cdib.sbr
文件 16483 2015-06-30 17:30 改进的fcm算法\Debug\ChildFrm.obj
文件 0 2015-06-30 17:30 改进的fcm算法\Debug\ChildFrm.sbr
文件 19249 2015-06-30 17:30 改进的fcm算法\Debug\MainFrm.obj
文件 0 2015-06-30 17:30 改进的fcm算法\Debug\MainFrm.sbr
文件 3392512 2015-06-30 17:31 改进的fcm算法\Debug\myproc.bsc
文件 143447 2015-06-30 17:31 改进的fcm算法\Debug\myproc.exe
文件 405024 2015-06-30 17:31 改进的fcm算法\Debug\myproc.ilk
文件 23765 2015-06-30 17:30 改进的fcm算法\Debug\myproc.obj
文件 7206948 2015-06-30 17:30 改进的fcm算法\Debug\myproc.pch
文件 574464 2015-06-30 17:31 改进的fcm算法\Debug\myproc.pdb
文件 7908 2015-05-19 15:34 改进的fcm算法\Debug\myproc.res
文件 0 2015-06-30 17:30 改进的fcm算法\Debug\myproc.sbr
文件 17141 2015-06-30 17:30 改进的fcm算法\Debug\myprocDoc.obj
文件 0 2015-06-30 17:30 改进的fcm算法\Debug\myprocDoc.sbr
文件 45177 2015-06-30 17:31 改进的fcm算法\Debug\myprocView.obj
文件 0 2015-06-30 17:31 改进的fcm算法\Debug\myprocView.sbr
文件 105853 2015-06-30 17:30 改进的fcm算法\Debug\StdAfx.obj
文件 1376363 2015-06-30 17:30 改进的fcm算法\Debug\StdAfx.sbr
文件 435200 2015-06-30 17:31 改进的fcm算法\Debug\vc60.idb
文件 413696 2015-06-30 17:31 改进的fcm算法\Debug\vc60.pdb
文件 1535174 2015-05-15 21:36 改进的fcm算法\hu.bmp
文件 327982 2015-06-12 09:25 改进的fcm算法\lunao.bmp
文件 2523 2015-05-06 19:19 改进的fcm算法\MainFrm.cpp
............此处省略31个文件信息
- 上一篇:现代编译原理-C语言描述
- 下一篇:MFCaccess.rar
评论
共有 条评论