分水岭图像分割算法C++程序源代码


图像处理,本程序实现了用分水岭算法实现图像分割。
资源截图
代码片段和文件信息
// Imageobject.cpp: implementation of the CImageobject class.
//
//////////////////////////////////////////////////////////////////////

#include “stdafx.h“
#include “Imageobject.h“
#include “ImageLoad.h“

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

IMPLEMENT_DYNCREATE( CImageobject Cobject ) 

char *CImageobject::pszExtensions[] = { “.bmp“ “.gif“ “.pcx“ “.tga“ “.jpg“ “.tif“ ““ };

//////////////////////////////////////////////////
// Constructor and destructor
//
CImageobject::CImageobject()
{
m_nWidth = m_nHeight = m_nBits = m_nColors = m_nImageType = 0;
m_nX = m_nY = 0;
m_nLastError = 0;
m_hDib = NULL;
m_nPaletteCreationType = JGPT_FIXED_PALETTE;
    m_pszFileName = NULL;
    m_pLogPalette = NULL;
m_nQuality = 80;
m_pDib = NULL;
m_lBufSize = 0;
}

CImageobject::CImageobject( const char *pszFileName CDC *pDC int nX int nY )
{
m_nWidth = m_nHeight = m_nBits = m_nColors = m_nImageType = 0;
m_nX = m_nY = 0;
m_nLastError = 0;
m_hDib = NULL;
m_nPaletteCreationType = JGPT_FIXED_PALETTE;
m_pszFileName = NULL;
m_pLogPalette = NULL;
m_nQuality = 80;
m_pDib = NULL;
m_lBufSize = 0;
LoadFromFile( pszFileName pDC nX nY );
}

void CImageobject::operator=( const CImageobject &Imageobject )
{
DestroyImage();

m_nLastError = Imageobject.m_nLastError;

    m_nWidth = Imageobject.m_nWidth;
m_nHeight = Imageobject.m_nHeight;
m_nPlanes = Imageobject.m_nPlanes;
m_nBits = Imageobject.m_nBits;
m_nColors = Imageobject.m_nColors;
m_nImageType = Imageobject.m_nImageType;

m_nX = Imageobject.m_nX;
m_nY = Imageobject.m_nY;

m_nScreenPlanes = Imageobject.m_nScreenPlanes;
m_nScreenBits = Imageobject.m_nScreenBits;
m_nPaletteInBytes = Imageobject.m_nPaletteInBytes;
m_nQuality = Imageobject.m_nQuality;
m_nPaletteCreationType = Imageobject.m_nPaletteCreationType;

int nNumColors = m_nColors;
int nWidthBytes = GetWidthInBytes( m_nBits m_nWidth );

if( Imageobject.m_hDib != NULL )
{
DWORD dwSize = ::GlobalSize( Imageobject.m_hDib );
char *pData = ( char * )::GlobalLock( Imageobject.m_hDib );
if( pData != NULL )
{
HGLOBAL hGlobal = ::GlobalAlloc( GMEM_MOVEABLE | GMEM_ZEROINIT dwSize );
if( hGlobal != NULL )
{
char *pDestData = ( char * )::GlobalLock( hGlobal );
if( pDestData != NULL )
{
memcpy( pDestData pData dwSize );
if( nNumColors != 0 )
CreatePaletteFromDIB( ( RGBQUAD * )&pData[sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER)] nNumColors );
else if( Imageobject.m_pLogPalette != NULL )
{
m_pLogPalette = (LOGPALETTE *) new char[ sizeof( LOGPALETTE ) + Imageobject.m_pLogPalette->palNumEntries * sizeof( PALETTEENTRY ) ];
if( m_pLogPalette != NULL )
{
for( int i=0; iject.m_pLogPalette->palNumEntries; i++ )
m_pLogPalette[i] = Imageobject.m_pLogPalette[i];
m_Palette.CreatePalett

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        741  1999-09-21 14:31  WaterShedImageErrors.h

     文件       3904  1999-09-22 11:12  WaterShedImageload.h

     文件      15566  1997-03-26 12:15  WaterShedImageLoad.lib

     文件      60290  2004-06-05 17:20  WaterShedImageobject.cpp

     文件       7435  2004-06-05 17:20  WaterShedImageobject.h

     文件       2508  2008-05-20 14:21  WaterShedMainFrm.cpp

     文件       1639  2008-05-19 23:34  WaterShedMainFrm.h

     文件      14223  2008-05-19 23:39  WaterShedMyMath.cpp

     文件       3392  2008-05-20 13:18  WaterShedMyMath.h

     文件       4383  2008-05-19 22:08  WaterShedReadMe.txt

     文件        688  2008-05-20 13:47  WaterShedResource.h

     文件        211  2008-05-19 22:08  WaterShedStdAfx.cpp

     文件       1054  2008-05-19 22:08  WaterShedStdAfx.h

     文件      32524  2009-03-25 09:38  WaterShedWaterShed.aps

     文件       2378  2009-05-23 22:35  WaterShedWaterShed.clw

     文件       4263  2008-05-19 22:08  WaterShedWaterShed.cpp

     文件       4984  2008-05-20 13:47  WaterShedWaterShed.dsp

     文件        543  2008-05-22 16:18  WaterShedWaterShed.dsw

     文件       1389  2008-05-19 22:08  WaterShedWaterShed.h

     文件     230400  2009-05-23 22:51  WaterShedWaterShed.ncb

     文件       1495  2009-03-25 17:00  WaterShedWaterShed.plg

     文件      11791  2008-05-20 14:21  WaterShedWaterShed.rc

     文件       3192  2008-05-20 15:05  WaterShedWaterShedDoc.h

     文件       4305  2008-05-19 23:53  WaterShedWaterShedView.cpp

     文件       2222  2008-05-19 22:22  WaterShedWaterShedView.h

     文件      33136  2009-03-25 17:00  WaterShedWaterShedDoc.cpp

     文件     147968  2009-05-23 22:51  WaterShedWaterShed.opt

    ..A.SHR         9  2009-08-10 17:48  WaterShedDesktop_1.ini

    ..A.SHR         9  2009-08-10 17:46  WaterShedDesktop_2.ini

     文件      94678  2004-05-29 19:32  WaterShed
esitmap3.bmp

............此处省略48个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)