资源简介
对输入的二值图像,进行边界跟踪,实现输出图像的边界,存在一维数组之中
代码片段和文件信息
#include
using namespace std;
//设输入图像为t[][],使用p[]来存储边界像素序列
//设方向搜索的初值为dir0为5
//全局变量
//为了使图像操作不越界,在图像四周添加一圈0像素
int t[7][7]={
0000000
0000000
0011000
0011100
0111110
0011100
0000000};
int tx[7][7]={0};//输出图像初始化
struct d{
int m;
int n;};
d p[100]; //用于存储边界点序列
int tt[7][7]={0};
int flag=0;
int k=0;
int dir=5;
void lujing(int iint jint aint bint dir);
void print() //输出图像
{
for(int x=1;x<=k;x++)
{tx[p[x].m][p[x].n]=1;}
for(x=0;x<=7;x++)
{
for(int y=0;y<=7;y++)
cout< cout< }
}
void dirc5(int iint jint aint b)
{
if(a==i+1&&b==j-1)
{print();
exit(0);}
else if(t[i+1][j-1]>0) //方向5
{
k++;
flag=1;
cout<<“左下方向(“< p[k].m=i+1;
p[k].n=j-1;
dir=(5+6)%8;
lujing(i+1j-1abdir);
return;
}
}
//诡异事件!!!! 先用 i,j点给p[][]赋值 赋不上,而先cout<void dirc6(int iint jint aint b)
{ if(a==i+1&&b==j)
{print();
exit(0);}
else if(t[i+1][j]>0)//方向6
{
k++;
flag=1;
cout<<“正下方向(“<
p[k].m=i+1;
p[k].n=j;
dir=(6+7)%8;
lujing(i+1jabdir);
return;
}
}
void dirc7(int iint jint aint b)
{ if(a==i+1&&b==j+1)
{print();
exit(0);}
else if(t[i+1][j+1]>0&&(a!=i+1||b!=j+1))//方向7
{
k++;
flag=1;
cout<<“右下方向(“< p[k].m=i+1;
p[k].n=j+1;
dir=(7+6)%8;
lujing(i+1j+1abdir);
return;}
}
void dirc0(int iint jint aint b)
{
if(a==i&&b==j+1)
{print();
exit(0);}
else if(t[i][j+1]>0)//方向0
{
k++;
flag=1;
cout<<“正右方向(“< p[k].m=i;
p[k].n=j+1;
dir=(0+7)%8;
lujing(ij+1abdir);
return;}
}
void dirc1(int iint jint aint b)
{
if(a==i-1&&b==j+1)
{print();
exit(0);}
else if(t[i-1][j+1]>0)//方向1
{
k++;
flag=1;
cout<<“右上方向(“< p[k].m=i-1;
p[k].n=j+1;
dir=(1+6)%8;
lujing(i-1j+1abdir);
return;}
}
void dirc2(int iint jint aint b)
{
if(a==i&&b==j+1)
{print();
exit(0);}
else if(t[i][j+1]>0)//方向2
{
k++;
flag=1;
cout<<“正上方向(“< p[k].m=i;
p[k].n=j+1;
dir=(2+7)%8;
lujing(ij+1abdir);
return;}
}
void dirc3(int iint jint aint b)
{
if(a==i-1&&b==j-1)
{print();
exit(0);}
else if(t[i-1][j-1]>0)//方向3
{
k++;
flag=1;
cout<<“左上方向(“<
p[k].m=i-1;
p[k].n=j-1;
dir=(3+6)%8;
lujing(i-1j-1abdir);
retur
- 上一篇:C++实现网络嗅探器 规划文档
- 下一篇:C语言选修课系统设计
相关资源
- VC++(VS2008)\“橡皮筋\“CRectTracker类
- vc++6.0DES加密算法+数据加密+文件加密
- 用DEVC++实现的小型通信录程序带实验
- 个人相册管理系统————VC++
- 软件测试实验报告——三角形问题
- GPS卫星定位-实时位置计算程序-VC++源
- 驱动程序加载
- 纸牌 windows 纸牌
- vc++编写的界面源代码
- VC++注册码加密源程序含注册机、解密
- USB 通讯 libusb-win32
- 又一个douglas道格拉斯VC++算法
- 家庭收支管理系统基于VC++ ACCESS数据库
- 功能非常全的数字图像处理程序含源
- 家庭财务系统,可在devc++上直接运行
- 特殊矩阵和压缩存储
- VC++磁盘MBR读写程序,测试通过
- 图像点运算VC++程序
- 摄影测量直接线性变换DLTVC++程序代码
- 用VC++6.0开发监控界面的方法
- VC++ 基于IE内核功能很齐全的浏览器(
- (转)VC老版主薄荷用VC++6.0写的TCP
- 网络对战象棋游戏源代码
- vc++ 彩色图与灰度图的转换
- VC++ 迷宫游戏
- VC++压缩解压zip文件支持密码
- vc++ opengl 下雪场景实现
- VC++制作的屏幕录像
- BP神经网络VC++实现
- 图像拼接使用VC++实现完成两幅又重叠
评论
共有 条评论