1066 图像过滤 (15 分)

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

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


输入格式:

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


输出格式:

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


输入样例:

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

结尾无空行


输出样例:

1. 003 189 254 000 000
2. 000 233 151 099 000
3. 088 000 000 000 255

结尾无空行

问题点:

1.数组大小要大于500(501)

2.printf("%03d",s[i][j]);(用0填充)

3.输出“ ”和“\n”

代码如下:


C语言:


#include <stdio.h>
int main() {
  int s[501][501];
  int m, n, a, b, t;
  scanf("%d%d%d%d%d", &m, &n, &a, &b, &t);
  for (int i = 0; i < m; i++) {
    for (int j = 0; j < n; j++) {
      scanf("%d", &s[i][j]);
      if (s[i][j] >= a && s[i][j] <= b)
        s[i][j] = t;
    }
  }
  for (int i = 0; i < m; i++) {
    for (int j = 0; j < n; j++) {
      if (j < n - 1)
        printf("%03d ", s[i][j]);
      else
        printf("%03d", s[i][j]);
    }
    if (i < m - 1)
      printf("\n");
  }
  return 0;
}

C++:


#include <iostream>
using namespace std;
int main() {
  int s[501][501];
  int m, n, a, b, t;
  cin >> m >> n >> a >> b >> t;
  for (int i = 0; i < m; i++) {
    for (int j = 0; j < n; j++) {
      cin >> s[i][j];
      if (s[i][j] >= a && s[i][j] <= b)
        s[i][j] = t;
    }
  }
  for (int i = 0; i < m; i++) {
    for (int j = 0; j < n; j++) {
      if (j < n - 1)
        printf("%03d ", s[i][j]);
      else
        printf("%03d", s[i][j]);
    }
    if (i < m - 1)
      cout << endl;
  }
  return 0;
}

成功解题

相关文章
|
测试技术 网络架构
SFP与GBIC详解:探索两者的细微差别
【4月更文挑战第21天】
364 0
|
23天前
阿里云服务器多少钱一年学生价?学生免费领取教程
阿里云学生免费领云服务器教程:先领300元学生专享代金券,再用券支付云服务器订单,实现免费领取。亲测有效,快来试试!
|
9月前
|
API Python
【02】优雅草央央逆向技术篇之逆向接口协议篇-以小红书为例-python逆向小红书将用户名转换获得为uid-优雅草央千澈
【02】优雅草央央逆向技术篇之逆向接口协议篇-以小红书为例-python逆向小红书将用户名转换获得为uid-优雅草央千澈
500 1
|
9月前
|
存储 编解码 算法
计算机基础(3)——编码与解码
我们都知道计算机底层采用的是二进制码,即计算机底层存储的全都是0和1,不管是我们看到的视频、图片、音乐、文档和其他任何存储在电脑上的文件,其底层都是0,1,那么为什么要采用0和1来进行存储呢?这些0和1在计算机底层又是如何存储的呢?0和1又是如何变成我们需要的文件呢?
809 1
计算机基础(3)——编码与解码
|
11月前
|
Prometheus 监控 Cloud Native
实战经验:成功的DevOps实施案例解析
实战经验:成功的DevOps实施案例解析
450 6
|
Android开发
Android获取当前连接的wifi名称
Android获取当前连接的wifi名称
585 6
|
安全 Java 数据安全/隐私保护
Android和iOS应用程序加固方法详解:混淆、加壳、数据加密、动态加载和数字签名实现
Android和iOS应用程序加固方法详解:混淆、加壳、数据加密、动态加载和数字签名实现
357 0
|
移动开发 开发工具 数据安全/隐私保护
iOS APP 版本更新升级教程:如何打包上架新的 APP 版本?
iOS APP 版本更新升级教程:如何打包上架新的 APP 版本?
|
移动开发 JavaScript 前端开发
|
应用服务中间件 文件存储 nginx
12-Windows下Nginx的安装及使用
12-Windows下Nginx的安装及使用