Как сохранить квантованные коэффициенты DCT как изображение JPEG с Python? - PullRequest
0 голосов
/ 04 июня 2019

Я создаю приложение для стеганографии на Python 3, в частности, стеганографию в формате JPEG.По этой причине я должен реализовать некоторое базовое сжатие JPEG, чтобы получить доступ к квантованным коэффициентам DCT и встраивать биты в младшие биты.Я реализовал все это, но теперь у меня проблема с сохранением коэффициентов в виде изображения JPEG.

Все библиотеки, которые я обнаружил, будут выполнять полное сжатие JPEG при сохранении изображения с расширением .jpg.Но я не хочу этого, так как сам уже выполнил части сжатия с потерями.Я хочу, чтобы он выполнял только части без потерь и сохранял изображение, не выполняя преобразование DCT и квантование снова.

Кто-нибудь пытался сделать это раньше?Существуют ли какие-либо библиотеки, которые позволили бы вам по существу сохранить 2 или 3-мерный файл numpy.ndarray как изображение JPEG без повторного сжатия его с потерями?

Вот пример того, как преобразовывается, квантуется и внедряетсяКоэффициенты выглядят:

[[[-48.  -1.  -9.]
  [ -3.   0.   1.]
  [  0.  -0.  -0.]
  ...
  [  0.  -0.   0.]
  [ -0.  -0.   0.]
  [ -0.  -0.  -0.]]
 [[  3.   0.  -2.]
  [ -0.  -0.   0.]
  [  0.   0.   0.]
  ...
  [ -0.   0.  -0.]
  [  0.   0.  -0.]
  [ -0.  -0.   0.]]
 [[ -0.   0.   0.]
  [ -0.   0.   0.]
  [  0.   0.   0.]
  ...
  [  0.   0.  -0.]
  [ -0.   0.   0.]
  [  0.   0.  -0.]]]
...