• nyoj--92--图像有用区域(模拟)


    图像有用区域

    时间限制: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
    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<stdio.h>
    #include<string.h>
    #include<algorithm>
    using namespace std;
    int map[1450][1450];
    int h,w;
    void dfs()
    {
    	for(int i=1;i<=h;i++)
    	for(int j=1;j<=w;j++)
    	if(map[i][j]!=0) map[i][j]=-1;
    	else break;
    	for(int i=1;i<=h;i++)
    	for(int j=w;j>=0;j--)
    	if(map[i][j]!=0) map[i][j]=-1;
    	else break;
    	for(int i=1;i<=w;i++)
    	for(int j=1;j<=h;j++)
    	if(map[j][i]!=0) map[j][i]=-1;
    	else break;
    	for(int i=1;i<=w;i++)
    	for(int j=h;j>=0;j--)
    	if(map[j][i]!=0) map[j][i]=-1;
    	else break;
    }
    int main()
    {
    	int t;
    	scanf("%d",&t);
    	while(t--)
    	{
    		scanf("%d%d",&w,&h);
    		for(int i=1;i<=h;i++)
    		for(int j=1;j<=w;j++)
    		scanf("%d",&map[i][j]);
    		dfs();
    		for(int i=1;i<=h;i++)
    		{
    			for(int j=1;j<w;j++)
    			if(map[i][j]==-1)
    			printf("0 ");
    			else
    			printf("%d ",map[i][j]);
    			if(map[i][w]==-1)
    			printf("0
    ");
    			else
    			printf("%d
    ",map[i][w]);
    		}
    	}
    	return 0;
    }



  • 相关阅读:
    黑盒测试分类
    Java变量的初始化顺序
    javahttp请求四种方式
    mybatis sql查询慢
    jacoco搭配springMVC maven tomcat项目,单元测试&接口测试踩坑
    maven标签pluginManagement和plugins区别
    Java反射学习之Field类访问和修饰变量
    Classpath重新认识
    properties文件加载的六种方法
    VMware ESXI6.0安装和配置IP地址
  • 原文地址:https://www.cnblogs.com/playboy307/p/5273475.html
Copyright © 2020-2023  润新知