我想计算480X480图像的每一行的morlet小波。我必须保存每一行变换的输出,这是一个二维数组(矩阵)。
然后我将取所有480个2d矩阵的平均值,我必须得到一个平均值的最终图。
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类型转换为cell类型。
soilwave (line 12) coefs(i) = cwt(K,1:128,'morl');
谁能建议一个更好的方法或调整这个
如果您需要存储格式或尺寸不一致的元素,单元格数组是实用的,但是对于您正在尝试做的事情,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);