图像有用区域

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

张云聪


  1. #include<stdio.h>
  2. #include<string.h>
  3. #include<algorithm>
  4. using namespace std;
  5. int map[1450][1450];
  6. int h,w;
  7. void dfs()
  8. {
  9. for(int i=1;i<=h;i++)
  10. for(int j=1;j<=w;j++)
  11. if(map[i][j]!=0) map[i][j]=-1;
  12. else break;
  13. for(int i=1;i<=h;i++)
  14. for(int j=w;j>=0;j--)
  15. if(map[i][j]!=0) map[i][j]=-1;
  16. else break;
  17. for(int i=1;i<=w;i++)
  18. for(int j=1;j<=h;j++)
  19. if(map[j][i]!=0) map[j][i]=-1;
  20. else break;
  21. for(int i=1;i<=w;i++)
  22. for(int j=h;j>=0;j--)
  23. if(map[j][i]!=0) map[j][i]=-1;
  24. else break;
  25. }
  26. int main()
  27. {
  28. int t;
  29. scanf("%d",&t);
  30. while(t--)
  31. {
  32. scanf("%d%d",&w,&h);
  33. for(int i=1;i<=h;i++)
  34. for(int j=1;j<=w;j++)
  35. scanf("%d",&map[i][j]);
  36. dfs();
  37. for(int i=1;i<=h;i++)
  38. {
  39. for(int j=1;j<w;j++)
  40. if(map[i][j]==-1)
  41. printf("0 ");
  42. else
  43. printf("%d ",map[i][j]);
  44. if(map[i][w]==-1)
  45. printf("0\n");
  46. else
  47. printf("%d\n",map[i][w]);
  48. }
  49. }
  50. return 0;
  51. }


nyoj--92--图像有用区域(模拟)的更多相关文章

  1. nyoj 92 图像有用区域

    点击打开链接 图像有用区域 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描述 "ACKing"同学以前做一个图像处理的项目时,遇到了一个问题,他需要摘取 ...

  2. ACM 图像有用区域

    图像有用区域 时间限制:3000 ms  |  内存限制:65535 KB 难度:4   描述 “ACKing”同学以前做一个图像处理的项目时,遇到了一个问题,他需要摘取出图片中某个黑色线圏成的区域以 ...

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

    92-图像有用区域 内存限制:64MB 时间限制:3000ms 特判: No 通过数:4 提交数:12 难度:4 题目描述: “ACKing”同学以前做一个图像处理的项目时,遇到了一个问题,他需要摘取 ...

  4. NYOJ92 图像实用区域 【BFS】

    碰到了一个曾经从未见过的奇怪问题:先上截图: 执行号 用户 题目 结果 时间 内存 语言 提交时间 895360 userid=%E9%95%BF%E6%9C%A8" style=" ...

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

    四种简单的图像显著性区域特征提取方法-----> AC/HC/LC/FT. 分类: 图像处理 2014-08-03 12:40 4088人阅读 评论(4) 收藏 举报 salient regio ...

  6. 简单的图像显著性区域特征提取方法-----opencv实现LC,AC,FT

    https://blog.csdn.net/cai13160674275/article/details/72991049?locationNum=7&fps=1 四种简单的图像显著性区域特征 ...

  7. nyoj 92 图片实用面积【bfs】

    图像实用区域 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描写叙述 "ACKing"同学曾经做一个图像处理的项目时.遇到了一个问题,他须要摘取出图片中某 ...

  8. 利用flash精确定位asp.net的图像热点区域

    Asp.net的热点区域控件非常有用,但是对于热点区域如何精确定位,设定矩形,圆和多边形要素点的位置,用flash能够精确定位,在flash中制作热点区域的部分,可以是矩形,图形或者文字,然后对于这部 ...

  9. 根据序列图像聚焦区域获取深度 Shape From Focus

    最为超新新新新鸟...我也不知道第一篇文章应该写什么..所以,把自己最近正在研究的东西报一下吧, 研究的东西其实也不算深奥,就是对一个图像序列中的每张图像进行检测,发现每张图片的聚焦清晰区域,找到这个 ...

随机推荐

  1. Redis学习笔记(三)-数据类型之string类型

    string是redis最基本的类型,而且string类型是二进制安全的.意思是redis的string可以包含任何数据.比如jpg图片或者序列化的对象.从内部实现来看其实string可以看作byte ...

  2. ★Java语法(七)——————————循环语句

    package 自我总结; public class 循环语句 { public static void main(String[] args) { // while 循环 // 用法: // whi ...

  3. QS之force(2)

    Examples 1) Force input1 to 0 at the current simulator time. force input1 0 2) Force the fourth elem ...

  4. MSP430之software development flow

    MSP430 software development flow. 1) The shaded portion highlights the most common development path; ...

  5. semiautomatic annotated tools

    在进行实验图像取样时,可能会用到大量的标签样本,拍摄大量图片进行手工标注要消耗大量时间,半自动化的标注工具可以节省一些时间. 原文链接:http://blog.sina.com.cn/s/blog_6 ...

  6. 读书笔记「Python编程:从入门到实践」_9.类

    9.1 创建和使用类 面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想. OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数. 把 ...

  7. 触发a标签

    var aLink = document.createElement("a"); aLink.download = ''; aLink.href = url; if (docume ...

  8. 在Unity中客户端与服务器端的2种通信方式(Socker)

    15:17 2019/5/10 //第一种 using UnityEngine; using System.Collections; //引入库 using System.Net; using Sys ...

  9. Node.js标准的回调函数

    Node.js标准的回调函数:第一个参数代表错误信息,第二个参数代表结果. function (err, data) 当正常读取时,err参数为null,data参数为读取到的String.当读取发生 ...

  10. 57.query phase

    主要知识点: query phase步骤 query phase如何提升性能     一.query phase步骤 一次query phase一般包括以下三个步骤     The query pha ...