南阳oj92--图像有用区域(Bfs)

图像有用区域

时间限制: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表示白色)
输出
以矩阵形式输出把黑色框之外的区域变黑之后的图像中各点的像素值。
样例输入
5 5 
100 253 214 146 120 
123 0 0 0 0 
54 0 33 47 0 
255 0 0 78 0 
14 11 0 0 0 
样例输出
0 0 0 0 0 
0 0 0 0 0 
0 0 33 47 0
0 0 0 78 0
0 0 0 0 0
来源
[张云聪]原创
上传者
张云聪

这题给我虐的, 注意行列, 还有搜索时要在图形外加一个边框, 保证能搜索到所有不符要求的点。

#include <queue>
#include <cstdio>
#include <cstring>
#include <iostream>
using namespace std;
int map[961][1441], ac[4][2] = {0, 1, 0, -1, -1, 0, 1, 0};
int n, m;
struct Pic
{
    int x, y;
} r, s, t;
void Bfs(int a, int b)
{
    r.x = a; r.y = b;
    queue<Pic> Q;
    Q.push(r);
    while(!Q.empty()) 
    {
        s = Q.front(); Q.pop();
        for(int i = 0; i < 4; i++)
        {
            t.x = s.x + ac[i][0];
            t.y = s.y + ac[i][1];
            if(t.x >= 0 && t.x <= n+1 && t.y >= 0 && t.y <= m+1 && map[t.x][t.y] != 0)
            {
                map[t.x][t.y] = 0;
                Q.push(t);
            }    
        }    
    }
}
int main()
{
    int T;
    scanf("%d", &T);
    while(T--)
    {
        scanf("%d %d", &m, &n);
        memset(map, 1, sizeof(map));    //边框: 
        for(int i = 1; i <= n; i++)            
            for(int j = 1; j <= m; j++)
                scanf("%d", &map[i][j]);
        Bfs(0, 0);
        for(int i = 1; i <= n; i++)
            for(int j = 1; j <= m; j++)
                printf(j==m? "%d\n":"%d ", map[i][j]); 
    }
    return 0;    
}

时间: 2024-10-29 19:07:55

南阳oj92--图像有用区域(Bfs)的相关文章

nyoj 92 图像有用区域 【bfs】

图像有用区域 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描述 "ACKing"同学以前做一个图像处理的项目时,遇到了一个问题,他需要摘取出图片中某个黑色线圏成的区域以内的图片,现在请你来帮助他完成第一步,把黑色线圏外的区域全部变为黑色.       图1                                                        图2 已知黑线各处不会出现交叉(如图2),并且,除了黑线上的点外,图像中没有纯黑色(即像素为0

NYOJ92 图像有用区域 【BFS】

碰到了一个以前从未见过的奇怪问题:先上截图: 运行号 用户 题目 结果 时间 内存 语言 提交时间 895360 长木 图像有用区域 Accepted 508 5724 C/C++ 06-13 19:26:41 895352 长木 图像有用区域 MemoryLimitExceeded -- -- C/C++ 06-13 18:24:34 895351 长木 图像有用区域 MemoryLimitExceeded -- -- C/C++ 06-13 18:23:05 895348 长木 图像有用区域

ACM 图像有用区域

图像有用区域 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描述 “ACKing”同学以前做一个图像处理的项目时,遇到了一个问题,他需要摘取出图片中某个黑色线圏成的区域以内的图片,现在请你来帮助他完成第一步,把黑色线圏外的区域全部变为黑色.       图1                                                        图2 已知黑线各处不会出现交叉(如图2),并且,除了黑线上的点外,图像中没有纯黑色(即像素为0的点).

nyoj 92 图像有用区域

图像有用区域 时间限制:3000 ms  |            内存限制:65535 KB 难度:4 描述 “ACKing”同学以前做一个图像处理的项目时,遇到了一个问题,他需要摘取出图片中某个黑色线圏成的区域以内的图片,现在请你来帮助他完成第一步,把黑色线圏外的区域全部变为黑色.       图1                                                        图2 已知黑线各处不会出现交叉(如图2),并且,除了黑线上的点外,图像中没有纯黑色(

nyoj 92-图像有用区域 (BFS)

92-图像有用区域 内存限制:64MB 时间限制:3000ms 特判: No 通过数:4 提交数:12 难度:4 题目描述: "ACKing"同学以前做一个图像处理的项目时,遇到了一个问题,他需要摘取出图片中某个黑色线圏成的区域以内的图片,现在请你来帮助他完成第一步,把黑色线圏外的区域全部变为黑色.       图1                                                        图2 已知黑线各处不会出现交叉(如图2),并且,除了黑线上的

NYOJ92 图像实用区域 【BFS】

碰到了一个曾经从未见过的奇怪问题:先上截图: 执行号 用户 题目 结果 时间 内存 语言 提交时间 895360 长木 图像实用区域 Accepted 508 5724 C/C++ 06-13 19:26:41 895352 长木 图像实用区域 MemoryLimitExceeded -- -- C/C++ 06-13 18:24:34 895351 长木 图像实用区域 MemoryLimitExceeded -- -- C/C++ 06-13 18:23:05 895348 长木 图像实用区域

nyoj--图像有用区域

描述 "ACKing"同学以前做一个图像处理的项目时,遇到了一个问题,他需要摘取出图片中某个黑色线圏成的区域以内的图片,现在请你来帮助他完成第一步,把黑色线圏外的区域全部变为黑色.       图1                                                        图2 已知黑线各处不会出现交叉(如图2),并且,除了黑线上的点外,图像中没有纯黑色(即像素为0的点). 输入 第一行输入测试数据的组数N(0<N<=6) 每组测试数据的

四种比较简单的图像显著性区域特征提取方法原理及实现-----&gt; AC/HC/LC/FT。

laviewpbt  2014.8.4 编辑 Email:[email protected]   QQ:33184777 最近闲来蛋痛,看了一些显著性检测的文章,只是简单的看看,并没有深入的研究,以下将研究的一些收获和经验共享. 先从最简单的最容易实现的算法说起吧: 1. LC算法 参考论文:Visual Attention Detection in Video Sequences Using Spatiotemporal Cues. Yun Zhai and Mubarak Shah.  Pa

四种简单的图像显著性区域特征提取方法-----&gt; AC/HC/LC/FT。

四种简单的图像显著性区域特征提取方法-----> AC/HC/LC/FT. 分类: 图像处理 2014-08-03 12:40 4088人阅读 评论(4) 收藏 举报 salient region detec显著性检测 laviewpbt  2014.8.3 编辑 Email:[email protected]   QQ:33184777 最近闲来蛋痛,看了一些显著性检测的文章,只是简单的看看,并没有深入的研究,以下将研究的一些收获和经验共享.      先从最简单的最容易实现的算法说起吧: 1