Реализация схем подъема на питоне для Haar DWT?

Я пытаюсь закодировать стеганографию на основе Haar DWT. Коэффициенты поддиапазонов приходят в float64. Чтобы встроить секрет в пиксели, мне нужны поддиапазоны в виде целых чисел.

Matlab предоставляет схемы подъема для преобразования поддиапазонов в целые числа. Предоставляет ли какая-либо библиотека Python такую ​​​​функцию?

Использование: pywavelets, numpy, python2.7


person Himani Agrawal    schedule 24.04.2016    source источник
comment
Попробовал предоставленную реализацию iwt. Изображение, полученное после iiwt2(iwt2(image)), сильно отличается от исходного изображения, т.е. мы не хотим в случае стенографии.   -  person Himani Agrawal    schedule 25.04.2016
comment
Я могу гарантировать вам 101%, что это работает для 2D-массивов. Так что либо вы построили его с чем-то другим, чем тип np.uint8, или что-то не так с вашим массивом. Вы передали image как тип int? Несмотря на это, шаги по созданию собственной схемы подъема включены в этот ответ. Не стесняйтесь создавать свою собственную реализацию, если что-то в этом примере не удовлетворяет ваши потребности.   -  person Reti43    schedule 25.04.2016
comment
Я передаю изображение как np.uint8, и результирующий массив имеет целые числа. Но изображение, полученное после инверсии, настолько отличается, что можно легко сказать, что это не исходное изображение.   -  person Himani Agrawal    schedule 25.04.2016
comment
Вы должны передать изображение как int, иначе суммы и разности не могут выйти за пределы диапазона 0-255. Если вы не хотите делать это вручную, добавьте строку вверху каждой функции с array = array.astype(int).   -  person Reti43    schedule 25.04.2016
comment
Передача изображения как int работала, но я не понял как? Кроме того, нет отрицательных значений.   -  person Himani Agrawal    schedule 25.04.2016