①原始数据中,某数不为 0 且相邻无重复,压缩数据用该数据表示;②原始数据中,某数为0且相邻无重复,压缩数据用两个数表示,第1个为0,第2个为0;③原始数据中,某数据相 邻有重复,压缩数据用3个数表示:第1个为0,第2个为重复数的个数,第3个为该数本身。
根据上述压缩方法,对应的解压缩方法示例如图所示。

小明学习了Python的PIL、matplotlib和numpy等模块知识后,现有图像文件“台州.bmp”,该文件的颜色模式为RGB,将该图像文件的每个像素点转换成灰度值(值为整数)后, 使用上述 压缩方法进行压缩并保存为文本文件。颜色RGB值转灰度值的公式如下:
灰度值=0.299×红色颜色分量+0.587×绿色颜色分量+0.114×蓝色颜色分量
(1)如果压缩数据为“23,0,21,66,0,0,77,0,5,0”,则解压缩数据的个数是
(2)实现上述功能的Python 程序如下。请在划线处填入合适代码。
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
img = np.array(Image.open("台州.bmp"))
row,cols,rgb = img.shape
s=[]
for i in range(row):
for j in range(cols):
r,g,b = img[i,j]
hdz =
s.append(hdz)
ss = []:j = 0
while j<len(s)-1:
if s[j]!=s[j+1]:
if s[j]!=0:
ss.append(s[j])
else:
ss.extend
j+=1
else:
c = s[j]
for k in range(j+1,len(s)) :
if c!=s[k]:
break
else:
ss.extend([0,k-j,s[j]])
j=k
if j!=len(s):
ss.append(s[j])
f = open("台州 255.txt","w+")
f.write(",".join(map(str,ss)))
f.close()

同类型试题

y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2


y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2

