我想在一个文本文件中保存多个对象的高度和宽度值,但它只保存了最后处理的图像数据。这是我的代码:
contents = get(hObject,'Value')
pilih=guidata(gcbo);
theImage{1}=getImage(handles.axes1);
theImage{2}=getImage(handles.axes2);
theImage{3}=getImage(handles.axes3);
theImage{4}=getImage(handles.axes4);
theImage{5}=getImage(handles.axes5);
for z = 1:5;
Img = theImage{z};
abu=rgb2gray(Img);
cb=imclearborder(abu);
thresh=graythresh(cb);
b=im2bw(cb,thresh);
bw=bwareaopen(b,60);
bwfill=imfill(bw,'holes');
s=regionprops(bwfill,'BoundingBox');
objects=cell(numel(s),1);
for idx=1:numel(s)
bb=floor(s(idx).BoundingBox);
out=bsxfun(@times,Img,uint8(bwfill));
objects{idx}=out(bb(2):bb(2)+bb(4),bb(1):bb(1)+bb(3),:);
end
X = zeros(3, numel(objects));
for k = 1:numel(objects)
k1=objects{k};
c1=rgb2gray(k1);
t1=graythresh(c1);
biner1=im2bw(c1,t1);
[height,width]=size(biner1);
a1=bwarea(biner1);
X(:,k)=[height;width;a1];
end
end
save grading/datauji.txt X -ascii;
我该怎么办?非常感谢你。这是我的照片。其中有5个,我想将所有对象的高度和宽度数据保存在一个txt文件中。
答案 0 :(得分:0)
试试这段代码,
码
numel = 100;
file = fopen('ans.txt','w');
testdata = rand(3, numel);
X = zeros(3, numel);
for i=1:numel
X(:,i) = testdata(:,i);
fprintf(file,'%ld %ld %ld\n', X(1,i), X(2,i), X(3,i));
end
fclose(file);
我已经创建了一个虚拟数据点,即100.我已经在' testdata'中创建了变量中的随机数据,然后我迭代了数字'并且每次保存都以逗号分隔类型保存所有3个数据
ans.txt
11.0 2.2 3.1
4.2 5.2 1.1
32.1 542 12.1
12. 12 23
希望这有效。