python - 如何将小波变换的 LL、LH、HL 保存为 3 通道图像?
问题描述
尝试使用此链接中描述的 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 通道图像,但我不知道该怎么做,谁能告诉我该怎么做?
我的另一个问题:这仅适用于灰度图像吗?
解决方案
将彩色图像分成三个颜色通道
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)
推荐阅读
- npm - 如何在 debian 上安装 npm,收到 Unable to correct questions,你有损坏的包
- php - 基本社交网络 Robin's Nest 的介绍性 PHP 书籍示例
- python - 如何在点云中的 3D 边界框的 RGBD 帧序列上拥有 2D 边界框?
- php - php使用foreach在smarty中嵌套while循环
- javascript - 如何使 node.js mysql 中的图像文件夹可访问
- java - 如何等到从服务器加载数据
- flutter - Flutter:无法将 Firestore 数据存储到局部变量(返回 null)
- java - 无法在heroku上部署
- php - 如何在 PHP 中解码多维 Json 数组
- c# - INSERT 语句与 FOREIGN KEY 约束“tblFavoriteTeam_LoginId”冲突