как сохранить LL, LH, HL вейвлет-преобразования в виде трехканального изображения?

Пытался выполнить вейвлет-преобразование с помощью PyWavelets, описанного в этой ссылке, вот мой код:

import pywt
import cv2 as cv
img = cv.imread('D:/gray.jpeg', cv.IMREAD_GRAYSCALE) #read gray image.
img = cv.resize(img, (256,256))
coeffs2 = pywt.dwt2(img, 'bior1.3')
LL, (LH, HL, HH) = coeffs2

Теперь я хочу сохранить LL, LH и HH как 3-канальное изображение, но я понятия не имею, как это сделать, может ли кто-нибудь сказать мне, как это сделать?

Мой другой вопрос: это работает только с изображениями в градациях серого?


person Hunar    schedule 14.05.2019    source источник
comment
Будет Как сохранить трехканальный массив numpy как изображение может помочь вам с конвертацией?   -  person funie200    schedule 14.05.2019
comment
спасибо, пробовал, но не помогло.   -  person Hunar    schedule 14.05.2019


Ответы (1)


Разделите цветное изображение на три цветовых канала.

b,g,r = cv2.split(img)

coeffsb = pywt.dwt2(b, 'bior1.3')
LLb, (LHb, HLb, HHb) = coeffsb

coeffsg = pywt.dwt2(g, 'bior1.3')
LLg, (LHg, HLg, HHg) = coeffsg

coeffsb = pywt.dwt2(b, 'bior1.3')
LLr, (LHr, HLr, HHb) = coeffsr

Затем вы можете применить вейвлет-преобразование к каждому каналу отдельно. После этого вы можете объединить группу по вашему выбору (например, LL):

LL = cv2.merge(LLb, LLg, LLr)
person Aaa Aa    schedule 10.05.2021