编码图像,使用 reed-solomon 编码器

Encoding image, using reed-solomon coder

我正在尝试使用 Reed-Solomon 编码器在 Python 应用程序中编码、发送和放置一些噪声并解码图像

我已经将图像从 PIL 转换为 numpy 数组。现在我正在尝试对这个数组进行编码,然后对其进行解码。但是我对代码字有疑问。它太长了。有谁知道如何解决这个问题。提前谢谢你

错误信息: ValueError:消息长度最大为 223。消息为 226

import unireedsolomon as rs
from PIL import Image
import numpy as np

class REED
  def __init__(self):

    self.img = None
    self.numpyImg = None


  def loadPictureAndConvertToNumpyArray(self):
    self.img = Image.open('PATH')
    self.img.load()
    self.numpyImg = np.array(self.img)

  def reedSolomonEncode(self):

    coder = rs.RSCoder(255,223)
    self.numpyImg = coder.encode(self.numpyImg)

ReedSolomon 包的 github 页面清楚地表明您不能对大于 k(在您的情况下为 223)的数组进行编码。这意味着您必须先分割图像,然后再对其进行编码。 您可以将它分成 223 个块,然后处理编码块:

k = 223
imgChunks = np.array_split(self.numpyImg, range(k, self.numpyImg.shape[0], k))
encodedChunks = [coder.encode(chunk) for chunk in imgChunks]