图像有用区域(广搜)
来源:互联网 发布:nob2b 邮件群发软件 编辑:程序博客网 时间:2024/06/06 21:43
图像有用区域
时间限制:3000 ms | 内存限制:65535 KB
难度:4
- 描述
“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
代码
#include<stdio.h>#include<queue>// 广搜用stl队列using namespace std;struct node{int x;int y;};queue<node>q;//结构体队列int p[1000][1500];int w, h;int dir[4][2] = {0, 1, 0, -1, 1, 0, -1,0};//表示上下左右四个方向的数组void bfs(int x, int y){node start, next;int i;start.x = x;start.y = y;q.push(start);p[x][y] = 0;while(!q.empty()){start = q.front();for(i = 0; i < 4; i++){next.x = start.x + dir[i][0];next.y = start.y + dir[i][1];if(next.x < 0 || next.y < 0 ||next.x >= h || next.y >= w || !p[next.x][next.y])// 判断是否出界以及是否被标记continue;q.push(next);p[next.x][next.y] = 0;}q.pop();}}int main(){int t;int i,j;scanf("%d",&t);while(t--){scanf("%d%d",&w,&h);for (i = 0;i<h;i++)for (j = 0;j<w;j++)scanf("%d",&p[i][j]);for (i = 0;i<h;i++)//四条边分别进行搜索if (p[i][0])bfs(i,0);for (j = 0;j<w;j++)if (p[0][j])bfs(0,j);for (i = 0;i<h;i++)if (p[i][w-1])bfs(i,w-1);for (j = 0;j<w;j++)if (p[h-1][j])bfs(h-1,j);for (i = 0;i<h;i++)for (j = 0;j<w;j++)printf("%d%c",p[i][j],j!=w-1?' ':'\n'); //换行}}
- 图像有用区域(广搜)
- 图像有用区域(广搜)
- NYOJ 92图像的有用区域 (技巧性广搜)
- NYOJ92 图像有用区域(广搜BFS)
- NYOJ 92 图像有用区域(广搜)
- NYOJ—图像有用区域【广搜BFS】
- 广搜--(搜索的第一道题)图像有用区域
- 图像有用区域(bfs)
- 图像有用区域(bfs)
- nyoj--92--图像有用区域(模拟)
- NYOJ 92 图像有用区域 (BFS)
- nyoj 图像有用区域(BFS)
- NYOJ-92 图像有用区域(bfs)
- nyoj 92 图像有用区域(dfs)
- 图像有用区域
- NYOJ92-图像有用区域
- NYOJ 图像有用区域
- 图像有用区域
- android 在myeclipse中查看源码
- A child container failed during start
- 指针常量和常量指针
- 代码生成-php代码生成-专注代码生成30年.
- bzoj 2741 分块 + 可持久化trie
- 图像有用区域(广搜)
- javascript 闭包浅析
- SSH通信配置-更新
- main.html 梳理2_git使用1
- Comparison Between NetCDF and HDF5
- 使用c99编译出warning: implicit declaration of function ‘popen’
- android中级自测题(二)
- JS的正则表达式 .
- mysql安装图解-mysql图文安装教程