C语言 图像处理

题目描述

自称图灵再世的唐古拉斯·小明最近对图像处理着了迷,今天有几个难题阻碍了小明拿图灵奖的步伐,小明希望你能帮帮他。

我们知道图像是由一个像素矩阵表示。彩色图像中每个像素由三个8位无符号数表示;灰度图像中每个像素由一个8位无符号数(0~255)表示。下图展示的是一张灰度图像,图中的二维数组对应于所选区域的像素矩阵(数组中各像素值均为8位无符号数)。

在这里插入图片描述

了解到你是刚刚接受计算机知识洗礼的小萌新,小明只需要你帮他解决灰度图像的像素矩阵,毕竟聪明的小明很容易就可以将知识融会贯通,把你的解决办法转移到彩色图像。

小明在用某软件编辑图像时就想实现其中一些功能。今天,小明希望你能帮他实现以下几个很实用的功能:

  1. 水平镜像翻转图像,如下图所示(图中的二维数组对应于原图像所选区域实现水平镜像翻转后的像素矩阵):
    在这里插入图片描述

  2. 将图像反色(提示:二进制中0的反为1,1的反为0,不妨将像素值视为256进制),如下图所示(图中的二维数组对应于原图像所选区域实现反色后的像素矩阵):

在这里插入图片描述

  1. 将图像逆时针旋转90°,如下图所示(图中的二维数组对应于原图像所选区域实现逆时针旋转90°后的像素矩阵):
    在这里插入图片描述
输入

第一行包含一个正整数T(T <= 50), 表示测试数据组数。

接下来有T组数据,对于每组数据:

第一行包含两个正整数M,N(中间由一个空格隔开,1<M, N<=100),表示图像像素矩阵的行、列数;

接下来有M行,每一行有N个整数,每个数的范围为0~255,表示一个灰度像素值。

每组输入数据后有一个空行。

输出

对于每组输入数据,对应的输出包含2*M+N+4行:

第1行为“Case #t:”,t表示数据组数;

第2~(M+1)行为原图像执行功能1后的像素矩阵,每一个像素值后有一个空格;

第(M+2)行为空行;

第(M+3)~(2*M+2)行为原图像执行功能2后的像素矩阵,每一个像素值后有一个空格;

第(2*M+3)行为空行;

第(2M+4)~(2M+N+3)行为原图像执行功能3后的像素矩阵,每一个像素值后有一个空格;

第(2*M+N+4)行为空行。

样例输入 Copy

2
2 3
124 95 20
88 65 73

8 5
40 38 54 59 49
55 49 50 83 79
87 90 112 132 131
129 151 142 147 187
167 165 155 163 156
99 95 123 155 151
139 123 161 164 144
157 143 146 175 179

样例输出 Copy

Case #1:
20 95 124
73 65 88

131 160 235
167 190 182

20 73
9

  • 8
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Shuo..

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值