资源简介
opencv手写数字识别
代码片段和文件信息
#include “stdafx.h“
#include “cvapp.h“
#include “math.h“
ImageProcessor *proc = 0;
int H;//图像高度
int W;//图像宽度
//计算直线距离
int dst(int xint yfloat afloat bfloat c)
{
return abs((a*x+b*y+c)/sqrt(a*a+b*b));
}
//用于表示图像上点的一个结构体
struct Point
{
int h; //该点高度坐标
int w; //该点宽度坐标
Point(int aint b)
{
h=a;
w=b;
}
};
//计算两点之间距离
int dst(Point p1Point p2)
{
int dist=sqrt(float((p1.h-p2.h)*(p1.h-p2.h)+(p1.w-p2.w)*(p1.w-p2.w)));
return dist;
}
//根据索引获取一维数组值
unsigned char Getdata(int hint wunsigned char* data)
{
return data[h*W+w];
}
//查找p点左上方的点是否为0
bool checkLU(Point punsigned char* data)
{
if (p.w==0)//没有左
return false;
else if (p.h==0) //没有上
return false;
else if (Getdata(p.h-1p.w-1data)!=0)//左上方不为0
return false;
return true;
}
//查找p点正上方的点是否为0
bool checkU(Point punsigned char* data)
{
if (p.h==0)//没有上
return false;
else if (Getdata(p.h-1p.wdata)!=0)//正上方不为0
return false;
return true;
}
//查找p点右上方的点是否为0
bool checkRU(Point punsigned char* data)
{
if (p.w==W-1) //没有右
return false;
else if (p.h==0)//没有上
return false;
else if (Getdata(p.h-1p.w+1data)!=0)//右上方不为0
return false;
return true;
}
//查找p点正左方的点是否为0
bool checkL(Point punsigned char* data)
{
if (p.w==0) //没有左
return false;
else if (Getdata(p.hp.w-1data)!=0)//正左方不为0
return false;
return true;
}
//查找p点正右方的点是否为0
bool checkR(Point punsigned char* data)
{
if (p.w==W-1) //没有右
return false;
else if (Getdata(p.hp.w+1data)!=0)//正右方不为0
return false;
return true;
}
//查找p点左下方的点是否为0
bool checkLD(Point punsigned char* data)
{
if (p.w==0) //没有左
return false;
else if (p.h==H-1)//没有下
return false;
else if (Getdata(p.h+1p.w-1data)!=0)//左下方不为0
return false;
return true;
}
//查找p点正下方的点是否为0
bool checkD(Point punsigned char* data)
{
if (p.h==H-1)//没有下
return false;
else if (Getdata(p.h+1p.wdata)!=0)//正下方不为0
return false;
return true;
}
//查找p点右下方的点是否为0
bool checkRD(Point punsigned char* data)
{
if (p.w==W-1) //没有右
return false;
else if (p.h==H-1)//没有下
return false;
else if (Getdata(p.h+1p.w+1data)!=0)//右下方不为0
return false;
return true;
}
//寻找从点p开始,最左最上的点
Point Find_LU(Point punsigned char* data)
{
Point p1=pp2=p;
int i=1j=0;
while (i*=-1) //让i在1和-1之间来回切换,用于记录最近两个时刻所要求的目标点
{
if (checkLU(pdata))//左上方
{
if (i==1)
{
if (p.h-1!=p1.h||p.w-1!=p1.w) //查找的点为新点
p1=Point(p.h-1p.w-1);
else break;//改点已经找过,则改点为要找的点
}
else
{
if (p.h-1!=p2.h||p.w-1!=p2.w) //查找的点为新点
p2=Point(p.h-1p.w-1);
else break;
}
}
else if (checkU(pdata))//上方
{
if(i==1)
{
if (p.h-1!=p1.h||p.w!=p1.w)
p1=Point(p.h-1p.w);
else break;
}
else
{
if (p.h-1!=p2.h||p.w!=p2.w)
p2=Point(p.h-1p.w);
else break;
}
}
else if (checkRU(pdata))//右上方
{
if (i==1)
{
if (p.h-
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2015-10-10 14:54 数字识别源程序_重要的OpenCV程序\
文件 0 2015-06-17 11:20 数字识别源程序_重要的OpenCV程序\1.txt
文件 0 2015-06-17 11:20 数字识别源程序_重要的OpenCV程序\2.txt
文件 0 2015-06-17 11:20 数字识别源程序_重要的OpenCV程序\3.txt
文件 0 2015-06-17 11:20 数字识别源程序_重要的OpenCV程序\4.txt
文件 31006 2015-06-17 11:18 数字识别源程序_重要的OpenCV程序\cvapp.cpp
文件 952 2011-07-12 16:24 数字识别源程序_重要的OpenCV程序\cvapp.h
目录 0 2015-10-10 13:59 数字识别源程序_重要的OpenCV程序\Debug\
文件 574 2015-10-10 13:59 数字识别源程序_重要的OpenCV程序\Debug\BscMake.command.1.tlog
文件 872 2015-10-10 13:59 数字识别源程序_重要的OpenCV程序\Debug\bscmake.read.1.tlog
文件 442 2015-10-10 13:59 数字识别源程序_重要的OpenCV程序\Debug\bscmake.write.1.tlog
文件 3058 2015-10-10 13:59 数字识别源程序_重要的OpenCV程序\Debug\cl.command.1.tlog
文件 70996 2015-10-10 13:59 数字识别源程序_重要的OpenCV程序\Debug\CL.read.1.tlog
文件 1692 2015-10-10 13:59 数字识别源程序_重要的OpenCV程序\Debug\CL.write.1.tlog
文件 365581 2015-10-10 13:59 数字识别源程序_重要的OpenCV程序\Debug\cvapp.obj
文件 0 2015-10-10 13:59 数字识别源程序_重要的OpenCV程序\Debug\cvapp.sbr
文件 12233728 2015-10-10 13:59 数字识别源程序_重要的OpenCV程序\Debug\Imgrcv.bsc
文件 1907 2015-06-17 11:19 数字识别源程序_重要的OpenCV程序\Debug\Imgrcv.Build.CppClean.log
文件 137728 2015-10-10 13:59 数字识别源程序_重要的OpenCV程序\Debug\Imgrcv.exe
文件 667 2015-06-17 11:19 数字识别源程序_重要的OpenCV程序\Debug\Imgrcv.exe.em
文件 732 2015-06-17 11:19 数字识别源程序_重要的OpenCV程序\Debug\Imgrcv.exe.em
文件 381 2015-10-10 13:59 数字识别源程序_重要的OpenCV程序\Debug\Imgrcv.exe.intermediate.manifest
文件 1387100 2015-10-10 13:59 数字识别源程序_重要的OpenCV程序\Debug\Imgrcv.ilk
文件 87 2015-10-10 13:59 数字识别源程序_重要的OpenCV程序\Debug\Imgrcv.lastbuildstate
文件 10101 2015-10-10 13:59 数字识别源程序_重要的OpenCV程序\Debug\Imgrcv.log
文件 25827 2015-10-10 13:59 数字识别源程序_重要的OpenCV程序\Debug\Imgrcv.obj
文件 27590656 2015-10-10 13:59 数字识别源程序_重要的OpenCV程序\Debug\Imgrcv.pch
文件 5803008 2015-10-10 13:59 数字识别源程序_重要的OpenCV程序\Debug\Imgrcv.pdb
文件 2560 2015-06-17 11:19 数字识别源程序_重要的OpenCV程序\Debug\Imgrcv.res
文件 0 2015-10-10 13:59 数字识别源程序_重要的OpenCV程序\Debug\Imgrcv.sbr
文件 713 2015-10-10 13:59 数字识别源程序_重要的OpenCV程序\Debug\Imgrcv.vcxprojResolveAssemblyReference.cache
............此处省略71个文件信息
相关资源
- Visual C++实用程序100例
- C++ Primer第五版中文版习题集(保证完
- C++代码图书管理系统
- 2017级吉林大学软件学院C++课程设计个
- OPC通讯C++实现,实现PC与西门子S7120
- Visual C++ 6.0安装包
- Visual C++ 2013入门经典 第7版 [美霍尔顿
- 魂斗罗游戏源码!
- C和C++安全编码原书第2版.pdf
- OpenCV算法精解 基于Python与C++
- C++打印PDF文件分页打印等功能 具体请
- 中缀表达式转化成后缀表达式并计算
- 编译器前两步
- 五子棋游戏开发程序及源代码C++开发
- C++MFC 银行管理系统
- vc++6.0完整版
- C++游戏编程入门(第4版)
- 信息学奥赛一本通.rar
- Visual C++开发实战1200例(第2卷).(配
- 深度探索C++对象模型 2012 中文 高清高
- C++反汇编与逆向分析技术揭秘 带书签
- C++基于HTTP的POST上传,C#的网站接收并
- [开发工具] Codejock Xtreme Suite Pro Activ
- Visual C++ 20082010201220132015(x86 x64)
- 采用C++、curses、多线程实现的俄罗斯
- C++GUI QT4 高清版 155MB
- Visual C++串口通信及测控应用详解
- 剑指offer第二版书和代码c++版本.zip
- MFC.Windows程序设计第二版、电子书、安
- 精通visual c++图像处理编程(第三版)
评论
共有 条评论