• 大小: 9.3MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-10-05
  • 语言: C/C++
  • 标签: OpenCV  

资源简介

使用VC++6.0做开发工具, 采用简单的SDI框架结构 ,一次处理一幅位图(有兴趣的可以作成MDI) 1)位图信息的数据是从左下往右下为一行,一行一行往上排的。 2)每行像素应该是4的倍数,不足的地方用空点补齐,读的时候注意跳过冗余点。 3)主要数据都存在Doc里面,BMP的主要数据存在一个由ImgData指向的BYTE型的内存空间(根据位图的大小,动态分配的)。 4)数据读进来以后,注 意向内存中贴图,以保证刷新的效率。 5)程序执行流程 应用程序生成--》打开--》CDipView的OnFileOpen 函数--》 调用CDipDoc的FileOpen 函数--》并使用myDoc->UpdateAllViews(NULL); 刷新 自动调用CDipView的OnPaint函数--》调用CDipView的OnDraw函数----一个像素点一个像素点的画 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 比较重要的地方 读BMP文件,只能打开256色 (可以是灰度) 显示和内存贴图技术 关于调色板: 调色板实际上是一个数组,4个BYTE 分别是 B,G,R,和 Reserved 每一个像素点都有一个相应的数组。 关于VC和windows 的绘图机制: 使用GDI(图形设备接口)对象,通常使用CDC 类,CPaintDC也一样(device-context)设备上下文 windows下的MFC编程机制,消息驱动,事件等待! 全局的app(应用程序对象) 注意 手工分配内存的清除 和CDC对象的删除 以释放系统的GDI资源 每一个new操作符都要对应一个delete 虽然已经弄出来了,还是希望大家好好读读源程序。 你们以后的工作: 在菜单中添加菜单项,通过ClassWizzard 生成消息响应函数(当然也可手动添加), 所有的操作应当是对 BYTE* ImgData;进行的。 在完成相应的功能后 将 isnewfile 和 isnewiamge 置为真 ,并使用myDoc->UpdateAllViews(NULL); 刷新 当然,可以更加有个性化一点,有能力的同学可以自己完成。 随着课程的进行,菜单功能逐渐丰富,最后完成基本的数字图像处理的功能,而不必最后一下完成一个大的作业。

资源截图

代码片段和文件信息

// AnnBP.cpp: implementation of the CAnnBP class.
//
//////////////////////////////////////////////////////////////////////
#include “StdAfx.h“
#include “AnnBP.h“
#include “math.h“




//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CAnnBP::CAnnBP()
{
eta1=0.3;
momentum1=0.3;

}

CAnnBP::~CAnnBP()
{

}


double CAnnBP::drnd()
{
return ((double) rand() / (double) BIGRND);
}


/*** 返回-1.0到1.0之间的双精度随机数 ***/
double CAnnBP::dpn1()
{
return (double) (rand())/(32767/2)-1;
}

/*** 作用函数,目前是S型函数 ***/
double CAnnBP::squash(double x)
{
return (1.0 / (1.0 + exp(-x)));
}


/*** 申请1维双精度实数数组 ***/
double* CAnnBP::alloc_1d_dbl(int n)
{
double *new1;

new1 = (double *) malloc ((unsigned) (n * sizeof (double)));
if (new1 == NULL) {
AfxMessageBox(“ALLOC_1D_DBL: Couldn‘t allocate array of doubles\n“);
return (NULL);
}
return (new1);
}

/*** 申请2维双精度实数数组 ***/
double** CAnnBP::alloc_2d_dbl(int m int n)
{
int i;
double **new1;

new1 = (double **) malloc ((unsigned) (m * sizeof (double *)));
if (new1 == NULL) {
AfxMessageBox(“ALLOC_2D_DBL: Couldn‘t allocate array of dbl ptrs\n“);
return (NULL);
}

for (i = 0; i < m; i++) {
new1[i] = alloc_1d_dbl(n);
}

return (new1);
}


/*** 随机初始化权值 ***/
void CAnnBP::bpnn_randomize_weights(double **w int m int n)
{
int i j;
for (i = 0; i <= m; i++) {
for (j = 0; j <= n; j++) {
w[i][j] = dpn1();
}
}

}

/*** 0初始化权值 ***/
void CAnnBP::bpnn_zero_weights(double **w int m int n)
{
int i j;

for (i = 0; i <= m; i++) {
for (j = 0; j <= n; j++) {
w[i][j] = 0.0;
}
}

}

/*** 设置随机数种子 ***/
void CAnnBP::bpnn_initialize(int seed)
{
CString msgs;
msg=“Random number generator seed:“;
s.Format(“%d“seed);
AfxMessageBox(msg+s);
srand(seed);
}

/*** 创建BP网络 ***/
BPNN* CAnnBP::bpnn_internal_create(int n_in int n_hidden int n_out)
{
BPNN *newnet;

newnet = (BPNN *) malloc (sizeof (BPNN));
if (newnet == NULL) {
printf(“BPNN_CREATE: Couldn‘t allocate neural network\n“);
return (NULL);
}

newnet->input_n = n_in;
newnet->hidden_n = n_hidden;
newnet->output_n = n_out;
newnet->input_units = alloc_1d_dbl(n_in + 1);
newnet->hidden_units = alloc_1d_dbl(n_hidden + 1);
newnet->output_units = alloc_1d_dbl(n_out + 1);

newnet->hidden_delta = alloc_1d_dbl(n_hidden + 1);
newnet->output_delta = alloc_1d_dbl(n_out + 1);
newnet->target = alloc_1d_dbl(n_out + 1);

newnet->input_weights = alloc_2d_dbl(n_in + 1 n_hidden + 1);
newnet->hidden_weights = alloc_2d_dbl(n_hidden + 1 n_out + 1);

newnet->input_prev_weights = alloc_2d_dbl(n_in + 1 n_hidden + 1);
newnet->hidden_prev_weights = alloc_2d_dbl(n_hidden + 1 n_out + 1);

return (newnet);

}

/* 释放BP网络所占地内存空间 */
void CAnnBP::bpnn_free(BPNN *net)
{
int n1 n2 i;

n1 = net->

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

     文件      11579  2004-06-02 12:08  opencv车牌识别系统2018\AnnBP.cpp

     文件       2971  2004-06-02 11:54  opencv车牌识别系统2018\AnnBP.h

     文件      20020  2004-06-14 01:40  opencv车牌识别系统2018\char.bp

     文件       1456  2004-06-05 15:26  opencv车牌识别系统2018\CharView.cpp

     文件       1547  2004-06-05 15:26  opencv车牌识别系统2018\CharView.h

     文件      24900  2004-06-14 01:40  opencv车牌识别系统2018\char_num.bp

     文件       1232  2004-06-14 01:40  opencv车牌识别系统2018\chdata.ch

     文件      50212  2009-11-22 12:55  opencv车牌识别系统2018\Debug\AnnBP.obj

     文件          0  2009-11-22 12:55  opencv车牌识别系统2018\Debug\AnnBP.sbr

     文件       7048  2009-11-22 12:59  opencv车牌识别系统2018\Debug\BuildLog.htm

     文件      33902  2009-11-22 12:55  opencv车牌识别系统2018\Debug\CharView.obj

     文件          0  2009-11-22 12:55  opencv车牌识别系统2018\Debug\CharView.sbr

     文件      31803  2009-11-22 12:55  opencv车牌识别系统2018\Debug\DigitClass.obj

     文件          0  2009-11-22 12:55  opencv车牌识别系统2018\Debug\DigitClass.sbr

     文件    5901312  2009-11-22 12:59  opencv车牌识别系统2018\Debug\dip.bsc

     文件       2048  2009-11-22 12:55  opencv车牌识别系统2018\Debug\dip.exe.embed.manifest

     文件      35863  2009-11-22 12:55  opencv车牌识别系统2018\Debug\dip.obj

     文件   16515072  2009-11-22 12:55  opencv车牌识别系统2018\Debug\dip.pch

     文件          0  2009-11-22 12:55  opencv车牌识别系统2018\Debug\dip.sbr

     文件      51642  2009-11-22 12:55  opencv车牌识别系统2018\Debug\dipDoc.obj

     文件          0  2009-11-22 12:55  opencv车牌识别系统2018\Debug\dipDoc.sbr

     文件          0  2009-11-22 12:59  opencv车牌识别系统2018\Debug\dipView.sbr

     文件      22892  2009-11-22 12:55  opencv车牌识别系统2018\Debug\GreyDlg.obj

     文件          0  2009-11-22 12:55  opencv车牌识别系统2018\Debug\GreyDlg.sbr

     文件      36504  2009-11-22 12:55  opencv车牌识别系统2018\Debug\MainFrm.obj

     文件          0  2009-11-22 12:55  opencv车牌识别系统2018\Debug\MainFrm.sbr

     文件      18801  2009-11-22 12:55  opencv车牌识别系统2018\Debug\Mdlg.obj

     文件          0  2009-11-22 12:55  opencv车牌识别系统2018\Debug\Mdlg.sbr

     文件      21613  2009-11-22 12:55  opencv车牌识别系统2018\Debug\RecvChar.obj

     文件          0  2009-11-22 12:55  opencv车牌识别系统2018\Debug\RecvChar.sbr

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

评论

共有 条评论