资源简介
为了简单,没有采用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个文件信息
- 上一篇:MFC类库详解中文版(chm)
- 下一篇:VC6的MFC文件
相关资源
- VC6的MFC文件
- vc60写的四则混合运算计算器
- 数字图像处理 MFC bmp格式图片打开与保
- vc6.0做的扫雷游戏含源码
- VC6.0进程调度算法实现,作业调度 有
- visual assist x破解版 for VC6.0
- txt文件分割源代码vc6
- 基于VC6.0+VFW笔记本摄像头简单应用
- 抽奖程序源代码
- VC6补丁FileTool
- DICOM图片转换BMP的C++代码
- 学生成绩管理系统~ado mfc vc6.0
- 完美简体中文VC6汉化补丁
- Visual Assist X 10.3.1561.0VC6助手最优最稳
- VC实现虚拟打印机的框架源代码
- C++数字图像处理典型算法及实现--图像
- 用OpenGL实现球面纹理
- VC6.0利用ADO读取excel
- CPPUnit 1.12.1 库源码包和文档
- 棋盘格标定图
- 五子棋,MFC,VC6.0
- 基于GDAL VC6.0的遥感影像K均值分类程序
- [毕业分享] MFC实现数字图像处理软件
- VC++单文档视图打开bmp图片
- VC6.0 socket编程,多客户端,单服务器
- 在内存中将bmp转JPG
- TeeChart绘图控件破解版TeChart.Pro.v5 -V
- VC6.0配置HDF5环境
- 进销存管理系统 VC6.0 C++
- 影碟出租系统
评论
共有 条评论