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 }
  • 相关阅读:
    ES6 数值
    ES6 字符串
    ES6 Reflect 与 Proxy
    ES6 Map 与 Set
    es6 Symbol
    新兴的API(fileReader、geolocation、web计时、web worker)
    浏览器数据库 IndexedDB 入门教程
    离线应用与客户端存储(cookie storage indexedDB)
    javascript高级技巧篇(作用域安全、防篡改、惰性载入、节流、自定义事件,拖放)
    ajax与comet
  • 原文地址:https://www.cnblogs.com/Annetree/p/7263072.html
Copyright © 2011-2022 走看看