图像有用区域 【BFS】
来源:互联网 发布:有关创业的软件 编辑:程序博客网 时间:2024/05/16 08:11
图像有用区域
- 描述
“ACKing”同学以前做一个图像处理的项目时,遇到了一个问题,他需要摘取出图片中某个黑色线圏成的区域以内的图片,现在请你来帮助他完成第一步,把黑色线圏外的区域全部变为黑色。
图1 图2
已知黑线各处不会出现交叉(如图2),并且,除了黑线上的点外,图像中没有纯黑色(即像素为0的点)。
- 输入
- 第一行输入测试数据的组数N(0<N<=6)
每组测试数据的第一行是两个个整数W,H分表表示图片的宽度和高度(3<=W<=1440,3<=H<=960)
随后的H行,每行有W个正整数,表示该点的像素值。(像素值都在0到255之间,0表示黑色,255表示白色) - 输出
- 以矩阵形式输出把黑色框之外的区域变黑之后的图像中各点的像素值。
- 样例输入
15 5100 253 214 146 120123 0 0 0 054 0 33 47 0255 0 0 78 014 11 0 0 0
- 样例输出
0 0 0 0 00 0 0 0 00 0 33 47 00 0 0 78 00 0 0 0 0
- 来源
- [张云聪]原创
- 上传者
张云聪
坑的地方好多。
一开始用的dfs 结果爆了0.0 后来有用bfs ,,,high和wide 。。快烦死我。。醉了。。
还有一点,,就是外面还要加一圈 1 。。因为可能整个图都是要被保存下来的,。。 这样可以测试到图的最外层是不是 0 ;
代码
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<math.h>
#include<stack>
#include<queue>
#define inf 0x3f3f3f
#define M 1440+10
using namespace std;
typedef struct
{
int x,y;
}data;
int wide,high;
int map[970][1444];
int to[4][2]={0,1,0,-1,1,0,-1,0};
bool check(int x,int y)
{
return x>=0&&x<=high+1&&y>=0&&y<=wide+1&&map[x][y];
}
void getmap()
{
memset(map,1,sizeof(map)); // 全变为1
for(int i=1;i<=high;i++)
{
for(int j=1;j<=wide;j++)
{
scanf("%d",&map[i][j]);
}
}
}
void bfs(data st)
{
queue<data>num;
data now,next;
num.push(st);
while(!num.empty())
{
now=num.front();
num.pop();//wang
for(int i=0;i<4;i++)
{
next.x=now.x+to[i][0];
next.y=now.y+to[i][1];
if(check(next.x,next.y))
{
map[next.x][next.y]=0;
num.push(next);
}
}
}
}
void print()
{
for(int i=1;i<=high;i++)
{
for(int j=1;j<=wide;j++)
{
if(j>1) printf(" ");
printf("%d",map[i][j]);
}
putchar('\n');
}
}
int main()
{
int n;
scanf("%d",&n);
while(n--)
{
scanf("%d%d",&wide,&high);
getmap();
data c;
c.x=0;c.y=0;
bfs(c);
print();
}
return 0;
}
- 图像有用区域 bfs
- 图像有用区域 【BFS】
- NYOJ92 图像有用区域 【BFS】
- 图像有用区域(bfs)
- nyoj92图像有用区域【bfs】
- 图像有用区域(bfs)
- NYOJ-92 图像有用区域 BFS
- nyoj 92 图像有用区域 【bfs】
- NYOJ 92--图像有用区域【BFS && 水题】
- NYOJ 92 图像有用区域 【bfs】
- nyoj--92 图像有用区域(bfs)
- NYOJ 92 图像有用区域 (BFS)
- nyoj 图像有用区域(BFS)
- nyoj ACM:图像有用区域 (bfs)
- nyoj 92 图像有用区域 bfs
- NYOJ-92 图像有用区域(bfs)
- 【NYOJ-92- 图像有用区域-BFS】
- NYOJ 92 图像有用区域 bfs
- TCP/IP详解学习笔记(10)-TCP连接的建立与中止
- Hibernate框架工作流程
- Java中的传递机制
- 使用Python实现Aho-corasick自动机
- 天仙配
- 图像有用区域 【BFS】
- weblogic不重启清理日志文件
- Scr888 Online Casino Free Bejeweled Slot Game
- android基础知识----上滑标题变浅变透明
- 录频
- 第三周报告
- solr详细教程。(你想要的这里都有..)
- 割点 割边
- 在HTML中实现动画的方法