美文网首页
PAT Basic 1066. 图像过滤(15)(C语言实现)

PAT Basic 1066. 图像过滤(15)(C语言实现)

作者: OliverLew | 来源:发表于2017-05-05 01:54 被阅读488次

    我的PAT系列文章更新重心已移至Github,欢迎来看PAT题解的小伙伴请到Github Pages浏览最新内容。此处文章目前已更新至与Github Pages同步。欢迎star我的repo

    题目

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

    输入格式:

    输入在第一行给出一幅图像的分辨率,即两个正整数 MN0 < M, N \le 500 ),另外是待过滤的灰度值区间端点 A
    B0 \le A < B \le 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
    

    思路

    很简单的题目,甚至连数组都不用开。

    代码

    最新代码@github,欢迎交流

    #include <stdio.h>
    
    int main()
    {
        int N, M, A, B, C, D;
    
        scanf("%d %d %d %d %d", &M, &N, &A, &B, &C);
    
        for(int i = 0; i < M; i++)
            for(int j = 0; j < N; j++)
            {
                scanf("%d", &D);
                if(A <= D && D <= B)    D = C;
                printf("%03d%c", D, j == N - 1 ? '\n' : ' ');
            }
    
        return 0;
    }
    

    相关文章

      网友评论

          本文标题:PAT Basic 1066. 图像过滤(15)(C语言实现)

          本文链接:https://www.haomeiwen.com/subject/sikjtxtx.html