无法执行赋值,因为左侧大小为512 × 512,右侧大小为512 × 512 × 3 MATLAB



我是MATLAB的初学者,正在遵循GitHub中与肺癌分类相关的代码。

当我在GitHub链接中使用示例图像时,它工作正常,但当我尝试使用GitHub上提到的数据库中的不同图像时,我得到以下错误。

无法执行赋值操作,因为左侧的大小是512 * 512,右侧的大小是512 * 512 * 3

肺错误(第16行)

img_out (:,:, n) = imfilter (img_in, gb,"对称");

下面是错误所在的代码区域

%% Preprocessing using gabor filter for image enhancement
lambda  = 9;
theta   = 0;
bw      = 3;
psi     = [0 0];
gamma   = 2;
N       = 4;
img_in = imread('b.bmp');
%img_in = double(dicomread('b.dcm'));
%img_in(:,:,2:3) = [];
img_out = zeros(size(img_in,1), size(img_in,2), N);
for n=1:N
gb = gabor_fn(bw,gamma,psi(1),lambda,theta)...
+ gabor_fn(bw,gamma,psi(2),lambda,theta);
img_out(:,:,n) = imfilter(img_in, gb, 'symmetric');
theta = theta + pi/4;
end
figure(1);
imshow(img_in);
title('input image');
figure(2);
img_out_disp = sum(abs(img_out).^2, 3).^0.5;
img_out_disp = img_out_disp./max(img_out_disp(:));
imshow(img_out_disp);
title('gabor output, L-2 super-imposed, normalized');

我也检查了导入向导,GitHub上的样例图像和我下载的。dcm图像肯定有一些不同,然后转换为。bmp。

img_in = imread('b.bmp');的输出为512x512x3的RGB图像。您通过imfilter()过滤这个RGB并返回相同大小的对象。然后,您将尝试将其分配给512x512x4 img_out数组的单个512x512片。

如果。dcm图像是灰度的,你应该使用rgb2gray()img_in的大小更改为单个512x512切片。

相关内容

  • 没有找到相关文章

最新更新