• 大小: 1.82MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-10-30
  • 语言: C/C++
  • 标签: VC6  BMP  膨胀  腐蚀  

资源简介

为了简单,没有采用doc-view模式,采用基于对话框方式 处理代码放入单独的一个类中,方便大家复用。 大部分地方有注释方便阅读。

资源截图

代码片段和文件信息

// ImageData.cpp : implementation file
//
 
#include “stdafx.h“
#include “My.h“
#include “ImageData.h“
#include 

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

/////////////////////////////////////////////////////////////////////////////
// ImageData

 

ImageData::ImageData()
{
}

ImageData::~ImageData()
{

if(image_data!=NULL) delete image_data;
if(diff_border_data!=NULL) delete diff_border_data;
if(wh_data!=NULL) delete wh_data;
if(erode_data!=NULL) delete erode_data;
if(dilate_data!=NULL) delete dilate_data;
 
}


 
 //---------------------------------------------------------
void ImageData::DrawImage(CDC *dcBYTE * dataint xint y) 

int ij;
x=20+x*(w+5);
y=40+y*(h+5);
for(i=0;i for(j=0;j {
int color=(int)data[w*(h-i)+j];
//BMP图像是按行从下往上存储的,黑白8位图像是一个像素对应一个字节
dc->SetPixel( x+j
y+i
RGB(
color
color
color

);
//黑白图像,所以红绿蓝分量都取一个值。

}

 
}
//---------------------------------------------------------
//为了方便直接显示处理过的的int数据,重载一个int* 的画图函数
void ImageData::DrawImage(CDC *dcint * dataint xint y) 
{ //
int ij;
x=20+x*(w+5);
y=40+y*(h+5);
for(i=0;i for(j=0;j {
int color=(int)data[w*(h-i)+j];
//BMP图像是按行从下往上存储的,黑白8位图像是一个像素对应一个字节
dc->SetPixel( x+j
y+i
RGB(
color
color
color

);
//黑白图像,所以红绿蓝分量都取一个值。

}
}
//---------------------------------------------------------
int ImageData::OpenImage(CString fileName)
{

if(fileName==““)
return NULL;
BITMAPINFO bmpInfo;
BITMAPFILEHEADER bmpFileHead;
CFile file;
if((file.Open(fileNameCFile::modeRead|CFile::shareDenyNone))==NULL)
{
AfxMessageBox(“Can not open the file“);
return NULL;
}
file.ReadHuge(&bmpFileHeadsizeof(BITMAPFILEHEADER));
file.ReadHuge(&bmpInfosizeof(BITMAPINFOHEADER));
w=bmpInfo.bmiHeader.biWidth;
h=bmpInfo.bmiHeader.biHeight;
image_size=bmpFileHead.bfSize-bmpFileHead.bfOffBits;
//获取除了文件信息外,图像真正数据的长度
image_data=(BYTE*)new char[image_size];

int_image_data=(int *)new char[image_size* sizeof(int )];
diff_border_data=(int *)new char[image_size* sizeof(int )];
wh_data=(int *)new char[image_size* sizeof(int )];
dilate_data=(int *)new char[image_size* sizeof(int )];
erode_data=(int *)new char[image_size* sizeof(int )];

if(!image_data)
return NULL;
file.ReadHuge(image_dataimage_size);
//把文件后部的数据读入数组


file.Close();
//开始处理
for(int i=0;i getBorderDiff( );
Gray2WH(int_image_datawh_data128 );
erode(wh_dataerode_data0);
dilate(wh_datadilate_data0);

return 1;


}
//---------------------------------------------------------------    
void ImageData::getBorderDiff(  )
    {
        int min=800;

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

     文件      16435  2013-05-05 13:33  My_BMP2\Debug\ImageData.obj

     文件     106544  2013-05-05 13:34  My_BMP2\Debug\My.exe

     文件     239908  2013-05-05 13:34  My_BMP2\Debug\My.ilk

     文件      13539  2013-05-05 10:52  My_BMP2\Debug\My.obj

     文件    5506328  2013-05-01 20:22  My_BMP2\Debug\My.pch

     文件     377856  2013-05-05 13:34  My_BMP2\Debug\My.pdb

     文件       2092  2013-05-05 13:26  My_BMP2\Debug\My.res

     文件      20938  2013-05-05 13:34  My_BMP2\Debug\MyDlg.obj

     文件     105441  2013-05-01 20:22  My_BMP2\Debug\StdAfx.obj

     文件     222208  2013-05-05 13:34  My_BMP2\Debug\vc60.idb

     文件     372736  2013-05-05 13:34  My_BMP2\Debug\vc60.pdb

     文件       6722  2013-05-05 13:33  My_BMP2\ImageData.cpp

     文件       1257  2013-05-05 13:33  My_BMP2\ImageData.h

     文件      34444  2013-05-05 13:26  My_BMP2\My.aps

     文件        806  2013-05-05 13:35  My_BMP2\My.clw

     文件       1974  2013-05-01 20:21  My_BMP2\My.cpp

     文件       4214  2013-05-05 13:36  My_BMP2\My.dsp

     文件        510  2013-05-01 23:09  My_BMP2\My.dsw

     文件       1280  2013-05-01 20:21  My_BMP2\My.h

     文件      66560  2013-05-05 13:36  My_BMP2\My.ncb

     文件      50688  2013-05-05 13:36  My_BMP2\My.opt

     文件        911  2013-05-05 13:34  My_BMP2\My.plg

     文件       4393  2013-05-05 13:26  My_BMP2\My.rc

     文件       3077  2013-05-05 13:34  My_BMP2\MyDlg.cpp

     文件       1339  2013-05-05 13:33  My_BMP2\MyDlg.h

     文件       3507  2013-05-01 20:21  My_BMP2\ReadMe.txt

     文件       1078  2013-05-01 20:21  My_BMP2\res\My.ico

     文件        394  2013-05-01 20:21  My_BMP2\res\My.rc2

     文件        496  2013-05-05 10:47  My_BMP2\resource.h

     文件        204  2013-05-01 20:21  My_BMP2\StdAfx.cpp

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

评论

共有 条评论