zoukankan      html  css  js  c++  java
  • PAT 乙级 1066. 图像过滤(15)

    图像过滤是把图像中不重要的像素都染成背景色,使得重要部分被凸显出来。现给定一幅黑白图像,要求你将灰度值位于某指定区间内的所有像素颜色都用一种指定的颜色替换。

    输入格式:

    输入在第一行给出一幅图像的分辨率,即两个正整数M和N(0 < M, N <= 500),另外是待过滤的灰度值区间端点A和B(0 <= A < B <= 255)、以及指定的替换灰度值。随后M行,每行给出N个像素点的灰度值,其间以空格分隔。所有灰度值都在[0, 255]区间内。

    输出格式:

    输出按要求过滤后的图像。即输出M行,每行N个像素灰度值,每个灰度值占3位(例如黑色要显示为000),其间以一个空格分隔。行首尾不得有多余空格。

    输入样例:

    3 5 100 150 0
    3 189 254 101 119
    150 233 151 99 100
    88 123 149 0 255
    

    输出样例:

    003 189 254 000 000
    000 233 151 099 000
    088 000 000 000 255
    
     1 #include<cstdio>
     2 #include<iostream>
     3 #include<cmath>
     4 using namespace std;
     5 
     6 int a[505][505];
     7 
     8 void print(int num)
     9 {
    10     if(num>=100)
    11         printf("%d",num);
    12     else if(num>=10)
    13         printf("0%d",num);
    14     else
    15         printf("00%d",num);
    16 }
    17 
    18 int main()
    19 {
    20     int m,n,l,r,num;
    21     scanf("%d%d%d%d%d",&m,&n,&l,&r,&num);
    22     for(int i=0;i<m;i++)
    23         for(int j=0;j<n;j++)
    24         {
    25             scanf("%d",&a[i][j]);
    26             if(a[i][j]>=l&&a[i][j]<=r)
    27                 a[i][j]=num;
    28         }
    29     for(int i=0;i<m;i++)
    30     {
    31         print(a[i][0]);
    32         for(int j=1;j<n;j++)
    33         {
    34             printf(" ");
    35             print(a[i][j]);
    36         }
    37         printf("
    ");
    38     }
    39     return 0;;
    40 
    41 }
  • 相关阅读:
    案例(2)-- 线程不安全对象(SimpleDateFormat)
    案例(1)-- OOM异常
    jvm--工具
    死锁的产生以及定位死锁
    TCP--粘包拆包,netty的解决方式
    netty--处理器
    AtomicIntegerFieldUpdater和AtomicInteger
    NIO--ByteBuf
    Pipeline
    吴恩达机器学习笔记(四) —— BP神经网络
  • 原文地址:https://www.cnblogs.com/Annetree/p/7263072.html
Copyright © 2011-2022 走看看