题目描述

在图像识别中,我们经常需要分析特定图像中的一些特征,而其中很重要的一点就是识别出图像的多个区域。在这个问题中,我们将给定一幅N xM的图像,其中毎个1 x 1的点都用一个[0, 255]的值来表示他的RGB颜色。如果两个相邻的像素点颜色差值不超过D,我们就认为这两个像素点属于同一个区域。对于一个像素点(x,y),以下这8个点(如果存在)是与它相邻的:(x-1,y-1),(x-1,y)(x-1,y+1)(x,y-1)(,y+1)(x+1,y-1)(x+1,y)(x+1,y+1)
你的任务是写一个程序,分辨出给定图像中一共被分为多少个区域。

 

输入

输入数据包含多组测试数据。
输入的第一行是一个整数T (T<=100),表示测试数据的组数。
每组测试数据的第一行是三个整数N,M,D(1<=N,M<=100, 0<= D<=255),意义如上所述。
接下来N行,每行M个整数,表示给定图像的每个像素点颜色。

输出

对于每组测试数据输出一行,即图像中的区域数量。

样例输入

2
3 3 0
1 1 1
0 1 0
0 1 0
3 4 1
10 11 12 13
9 8 7 6
2 3 4 5

样例输出

3
1

来源

2014机考C题

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<string>
using namespace std;
int donser[][];
bool lable[][];
bool chack(int m,int n)
{
for(int i=;i<m;i++)
for(int j=;j<n;j++)
if(lable[i][j]==)
return ;
return ;
}
void counts(int x,int y,int m,int n,int d)
{
if(lable[x][y]==)
return;
lable[x][y]=;
int color=donser[x][y];
if(x->=&&y->=&&abs(donser[x-][y-]-color)<=d)
counts(x-,y-,m,n,d);
if(x->=&&y>=&&abs(donser[x-][y]-color)<=d)
counts(x-,y,m,n,d);
if(x->=&&y+<n&&abs(donser[x-][y+]-color)<=d)
counts(x-,y+,m,n,d);
if(x>=&&y->=&&abs(donser[x][y-]-color)<=d)
counts(x,y-,m,n,d);
if(x>=&&y+<n&&abs(donser[x][y+]-color)<=d)
counts(x,y+,m,n,d);
if(x+<m&&y->=&&abs(donser[x+][y-]-color)<=d)
counts(x+,y-,m,n,d);
if(x+<m&&y>=&&abs(donser[x+][y]-color)<=d)
counts(x+,y,m,n,d);
if(x+<m&&y+<n&&abs(donser[x+][y+]-color)<=d)
counts(x+,y+,m,n,d);
return;
}
int main()
{
int T;
cin>>T;
while(T--)
{
int m,n,d,num=;
cin>>m>>n>>d;
for(int i=;i<m;i++)
{
for(int j=;j<n;j++)
{
cin>>donser[i][j];
lable[i][j]=;
}
}
while(!chack(m,n))
{
for(int i=;i<m;i++)
{
for(int j=;j<n;j++)
{
if(lable[i][j]==)
{
num++;
counts(i,j,m,n,d);
} }
}
}
cout<<num<<endl;
}
return ;
}

BUPT复试专题—图像识别(2014-2)的更多相关文章

  1. BUPT复试专题—旋转图像(2014)

    题目描述 将一幅只含有01像素点的图片进行顺时针旋转,旋转的角度仅包含0°,90°,180°,270° 输入 第一行一个整数T(<50)表示输入的组数 每组测试数据第一行是两个整数N和M(< ...

  2. BUPT复试专题—众数(2014)

    题目描述 有一个长度为N的非降数列,求数列中出现最多的数,若答案不唯一输出最小的数 输入 第一行T表示测试数据的组数(T<100) 对于每组测试数据: 第一行是一个正整数N表示数列长度 第二行有 ...

  3. BUPT复试专题—数据库检索(2014软院)

    题目描述 在数据库的操作过程中,我们进场会遇到检索操作.这个题目的任务是完成一些特定格式的检索,并输出符合条件的数据库中的所有结果. 我们现在有一个数据库,维护了学生的姓名(Name),性别(Sex) ...

  4. BUPT复试专题—最近公共祖先(2014软院)

    题目描述 给出一棵有N个节点的有根树TREE(根的编号为1),对于每组查询,请输出树上节点u和v的最近公共祖先. 最近公共祖先:对于有向树TREE的两个结点u,v.最近公共祖先LCA(TREE u,v ...

  5. BUPT复试专题—最长连续等差子数列(2014软院)

    题目描述   给定-个长度为N的整数数列,你需要在其中找到最长的连续子数列的长度, 并满足这个子数列是等差的.注意公差小于或等于0的情况也是允许的. 输入 第一行为数据组数T(1~100),表示测试数 ...

  6. BUPT复试专题—奇偶求和(2014软件)

    题目描述 给出N个数,求出这N个数,奇数的和以及偶数的和. 输入 第一行为测试数据的组数T(1<=T<=50).请注意,任意两组测试数据之间是相互独立的. 每组数据包括两行: 第一行为一个 ...

  7. BUPT复试专题—网络传输(2014网研)

    题目描述 网络的高效互联与智能传输是提升海量用户服务请求映射效率的重要措施.在这个任务中,你需耍在最小的传输时间内,将数据源传输到指定的网络节点中.我们给定的网络一共包含N个节点,其中节点1为数据源. ...

  8. BUPT复试专题—进程管理(2014网研)

    题目描述 在操作系统中,进程管理是非常重要的工作.每个进程都有唯一的进程标识PID.每个进程都可以启动子进程,此时我们称该它本身是其子进程的父进程.除PID为0的进程之外,每个进程冇且只冇一个父进程. ...

  9. BUPT复试专题—分数加法(2014网研)

    题目描述 求2^-a + 2^-b,其中a和b均为正整数,结果用最简分数表示 输入 第一行为测试数据的组数T (1~400).请注意,任意两组测试数据之间相互独立的.每组测试数据一行,包含两个整数a和 ...

随机推荐

  1. (58)zabbix网络拓扑图配置network map

    zabbix网络地图介绍 “zabbix network map”可以简单的理解为动态网络拓扑图,可以针对业务来配置zabbix map, 通过map可以了解应用的整体状况:服务器是否异常.网络是否有 ...

  2. Beautiful Soup 4.2.0 doc_tag、Name、Attributes、多值属性

    找到了bs4的中文文档,对昨天爬虫程序里所涉及的bs4库进行学习.这篇代码涉及到tag.Name.Attributes以及多值属性. ''' 对象的种类 Beautiful Soup将复杂HTML文档 ...

  3. PAT Basic 1041

    1041 考试座位号 每个 PAT 考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位.正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码 ...

  4. [转]python开发_shelve_完整版

    ''' python中的shelve模块,可以提供一些简单的数据操作 他和python中的dbm很相似. 区别如下: 都是以键值对的形式保存数据,不过在shelve模块中, key必须为字符串,而值可 ...

  5. wp8.1 sdk preview 预览版

    http://pan.baidu.com/s/1hqyusja?qq-pf-to=pcqq.c2c#dir/path=%2FWPSDK%208.1%20DevPreview%20Installerwp ...

  6. 【转】SQL索引一步到位

    原文:http://www.cnblogs.com/AK2012/archive/2013/01/04/2844283.html SQL索引一步到位(此文章为“数据库性能优化二:数据库表优化”附属文章 ...

  7. 长沙理工大学第十二届ACM大赛-重现赛

    年轮广场 时间限制:1秒 空间限制:131072K 题目描述 在云塘校区,有一个很适合晒太阳的地方————年轮广场 年轮广场可以看成n个位置顺时针围成一个环. 这天,天气非常好,Mathon带着他的小 ...

  8. MySQL主从复制报错一致性问题解决

    当MySQL主从复制中因为不一致报错的情况,我们第一时间想到的就是使用pt-table-checksum来进行检查主从一致并进行修复,但是使用此工具的前提是主从复制线程都为on状态, 所以这种情况下可 ...

  9. 【Luogu】P3414组合数(快速幂)

    题目链接 从n的元素中选零个,选一个,选两个,选三个...选n个的方案数和,其实就是n个元素中取任意多个元素的方案数,那对于每一个元素,都有取或不取两种情况,所以方案数最终为2^n个. #includ ...

  10. [Vijos1308]埃及分数(迭代加深搜索 + 剪枝)

    传送门 迭代加深搜索是必须的,先枚举加数个数 然后搜索分母 这里有一个强大的剪枝,就是确定分母的范围 #include <cstdio> #include <cstring> ...