python - dwt2 matlab函数在python pywt.dwt2函数中的结果不一样
问题描述
我正在研究一个脑肿瘤分类项目,它最初是在 matlab 中制作的,我正在尝试在 python 中实现它,我面临着在 python 中重新实现 2D 小波变换部分的问题。
这是matlab中的实现:-
img = imread('1Perfect.jpg');
img = imresize(img,[200,200]);
thr = im2bw(img);
signal1 = thr(:,:);
[cA1,cH1,cV1,cD1] = dwt2(signal1,'db4');
[cA2,cH2,cV2,cD2] = dwt2(cA1,'db4');
[cA3,cH3,cV3,cD3] = dwt2(cA2,'db4');
DWT_feat = [cA3,cH3,cV3,cD3];
imshow(imresize(DWT_feat,[110,450]));
这导致了这个: -
现在这是我的 python 实现:-
img = cv2.imread("1Perfect.jpg")
img = cv2.resize(img, dsize=(200, 200), interpolation=cv2.INTER_CUBIC)
gray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)
(thresh, result) = cv2.threshold(gray, 127.5, 255, cv2.THRESH_BINARY)
cA1, (cH1, cV1, cD1) = pywt.dwt2(result[:, :], 'db4')
cA2, (cH2, cV2, cD2) = pywt.dwt2(cA1, 'db4')
cA3, (cH3, cV3, cD3) = pywt.dwt2(cA2, 'db4')
DWT_feat = np.concatenate((cA3, cH3, cV3, cD3), axis=1)
cv2.imshow("frame", cv2.resize(feats, dsize=(450, 110), interpolation=cv2.INTER_CUBIC))
cv2.waitKey(0)
这是结果:-
那么我在这里缺少什么?
解决方案
推荐阅读
- javascript - 变量名中的问号
- ada - 餐饮哲学家问题Ada-实现ID Dispenser
- python - 使用带有 pandas 的函数返回客户系列
- groovy - 如何获取地图密钥?
- jenkins - Jenkins Pipeline - 在第一个阶段后 2 小时开始一个阶段
- java - 如何在没有 IDE 的情况下在我的项目中使用 lwjgl
- swift - FMDB 插入或替换做多个条目
- c# - 通过反射 C# 调用具有 Delegate 实例参数的方法
- identityserver4 - oidc-client 与不同主机域中的 Identity Server
- django - Django 错误消息显示在文本框后面