我是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切片。