Python实现灰度图像256级灰阶到16级的压缩算法
类型:程序题

问题描述

  1. 灰度图像共有256级灰阶,编码为00-FF(对应十进制0-255),要求编程实现将其压缩为16级灰阶,编码为0-F
  2. 压缩规则:
    • 统计所有灰阶的出现次数,取出现次数最多的前16种灰阶(若次数相同则按灰阶值从小到大排序),分别编号0-F
    • 其余灰阶转换为16种基准灰阶中最接近的:计算灰阶差的绝对值,最小的即为目标基准灰阶(若差值相同则选择灰阶值更小的基准)。
  3. 输入输出要求:
    • 输入:多行等长数据,每两个字符表示一个十六进制的灰阶点;输出先连续输出选中的最多16种基准灰阶编码(不足16种按实际输出),之后各行输出压缩后的编码,每行等长。

输入描述

  1. 第一行输入正整数n,表示后续输入的数据行数。
  2. 接下来输入n行十六进制字符串。
  3. 注意:Python的input()函数不得添加任何输入提示信息。

输出描述

  1. 首先输出选中的基准灰阶编码:按出现次数从多到少排序,次数相同则按灰阶值从小到大排序,每个灰阶占2个字符,总长度最多32字符(对应16种),不足16种按实际输出。
  2. 输出的十六进制字母必须为大写,字符间无空格。

样例输入

10
00FFCFAB00FFAC09071B5CCFAB76
00AFCBAB11FFAB09981D34CFAF56
01BFCEAB00FFAC0907F25FCFBA65
10FBCBAB11FFAB09981DF4CFCA67
00FFCBFB00FFAC0907A25CCFFC76
00FFCBAB1CFFCB09FC1AC4CFCF67
01FCCBAB00FFAC0F071A54CFBA65
10EFCBAB11FFAB09981B34CFCF67
01FFCBAB00FFAC0F071054CFAC76
1000CBAB11FFAB0A981B84CFCF66

样例输出

ABCFFF00CB09AC07101198011B6776FC
321032657CD10E
36409205ACC16D
B41032657FD16D
8F409205ACF14D
324F326570D1FE
3240C245FC411D
BF4032687CD16D
8F409205ACC11D
B240326878D16E
83409205ACE11D
代码编辑器 加载中...
测试用例(F10) 运行测试(F11) 提交答案(F12)
测试用例输入
{{resultStatus.text}}