matlab这是什么情况呢?只执行到if语句上面,怎么改呢
代码中的32又是什么意思呢?
clear;
clc;
%肺实质的图片
image_path = 'D:\LUNAR\alung\LIDC-IDRI-0001\';
%肺结节的位置信息和良恶性程度
xls_path = 'D:\LUNAR\AAxsl\LIDC-IDRI-0001t.xls';
[txt,xls_text] = xlsread(xls_path);
xls_num = size(xls_text);
xls_num(1);
for m = 1:xls_num(1)
img_name = xls_text(m,1);
str = img_name{1};
img_name = [str,'.jpg'];
jpg_child_path = [image_path,img_name]
if exist(jpg_child_path,'file')
col4x = txt(m,5) - txt(m,4);
col4y = txt(m,7) - txt(m,6);
dir = txt(m,1);
times = txt(m,2);
size_center = [ ];
if col4x < 32 && col4y < 32
ma = 0.5 * (32 - max(col4x,col4y));
col4xy = [txt(m,4)-ma,txt(m,6)-ma,32,32];
size_center =[ma,ma,max(col4x,col4y)];
zl_jianqie(jpg_child_path,dir,times,size_center,col4xy);
continue;
end
size_center =[0,0,max(col4x,col4y)];
col4xy = [txt(m,4),txt(m,6),max(col4x,col4y),max(col4x,col4y)];
zl_jianqie(jpg_child_path,dir,times,size_center,col4xy);
end
% break;
end
该怎样让代码运行起来呢?
根据代码和运行界面截图,可以发现if语句不执行的原因是对于某些文件路径,exist函数返回的结果为0,因此不满足if条件。这个问题可以通过增加else语句来进行处理,例如:
if exist(jpg_child_path,'file')
...
else
disp([jpg_child_path, ' does not exist!']);
end
同时代码中数字32是用来进行矩形切割的,用来限制切割矩形的边长必须大于等于32,如果小于32的话会进行适当扩充,保证最终切割成的矩形大小为32x32。