行程编码对图像进行压缩,显示原图像与压缩后的复原重构图像的代码
时间: 2023-04-02 17:01:02 浏览: 156
以下是行程编码对图像进行压缩,显示原图像与压缩后的复原重构图像的代码:
```python
import numpy as np
from PIL import Image
# 读取原图像
img = Image.open('original_image.jpg')
img_arr = np.array(img)
# 行程编码
def run_length_encode(img_arr):
rle_arr = []
for i in range(img_arr.shape[]):
row = img_arr[i]
row_rle = []
count =
for j in range(row.shape[]):
if j == :
count = 1
elif row[j] == row[j-1]:
count += 1
else:
row_rle.append((row[j-1], count))
count = 1
row_rle.append((row[-1], count))
rle_arr.append(row_rle)
return rle_arr
rle_arr = run_length_encode(img_arr)
# 行程解码
def run_length_decode(rle_arr):
img_arr = []
for i in range(len(rle_arr)):
row_rle = rle_arr[i]
row = []
for j in range(len(row_rle)):
pixel, count = row_rle[j]
row += [pixel] * count
img_arr.append(row)
return np.array(img_arr)
decoded_img_arr = run_length_decode(rle_arr)
# 显示原图像
img.show()
# 显示压缩后的复原重构图像
Image.fromarray(decoded_img_arr).show()
```
以上代码可以对图像进行行程编码压缩,并且可以将压缩后的数据解码成原图像。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)