1

我想计算每行 480X480 图像的 morlet 小波。我必须保存每一行的变换输出,这是一个二维数组(矩阵)。

然后我将取所有 480 个二维矩阵的平均值,我必须得到一个平均值的最终图。

clc;
close all;
clear all;
I=imread('lena.jpg');
J=rgb2gray(I);
%K=J(1:480)
%coefs = cwt(K,1:128,'morl','plot');


coefs = cell(480,1);
for i = 1:480
   K=J(i,:);
coefs(i) = cwt(K,1:128,'morl');
end  

在这里,我想取 480 个系数矩阵的平均值。这里出现错误

无法从 double 转换为单元格。

土壤波错误(第 12 行)coefs(i) = cwt(K,1:128,'morl');

任何人都可以提出更好的方法或对此进行调整。

4

1 回答 1

1

如果您需要存储格式或尺寸不一致的元素,则元胞数组很实用,但对于您想要做的事情,3D 数组更容易使用。这是我要做的:

预分配一个 3D 数组:

coefs = zeros(128, size(J, 2), size(J,1));

然后计算并填充堆栈:

for ii = 1:size(J, 1)
   K=J(ii,:);
   coefs(:,:,ii) = cwt(K,1:128,'morl');
end  

最后,计算沿第三维的平均值:

MeanCoeff=mean(coefs, 3);
于 2014-03-21T18:40:07.323 回答