2017-02-23 2 views
1

Ich habe versucht, die gleiche Größe für mehrere Bilder mit for Schleife in Matlab und speichern in png Aber einige (in der Regel eine) von ihnen hat unterschiedliche Größe. Im unteren Code habe ich versucht, Bild in (48,64) zu speichern. Warum sind einige Figurengrößen nicht richtig eingestellt, wie ich es befohlen habe?Gelegentlich, Figur Größe ist nicht richtig in Matlab eingestellt

nMarker = 5; 
mark = ['o', 's', 'd', '^', 'p']; 
nSize = 3; 
mSize = [9, 18, 27]; 

nRow = 48; 
nCol = 64; 
BG = zeros(nRow, nCol); 


idxStage = 2; 
numAction = 1; 
numPositionX = 4; 
numPositionY = 4; 
xtrain = [1,2,3,4]; 
ytrain = [1,2,3,4]; 
xpos = [20, 30, 40, 50]; 
ypos = [8, 18, 28, 38]; 

nStepS = 10; 
nStepB = 10; 
nStep = nStepS + nStepB; 

for a = 1 
    for x = 1:numPositionX 
     for y = 1:numPositionY 
      for obj = 1:nMarker 
       for s = 1:nSize 

        obj_command = x*1000 + y*100 + obj*10 + s; 

        fig1 = figure(1); 
        imagesc(BG) 
        hold on 
        scatter(xpos(x), ypos(y), mSize(s), mark(obj),  'k', 'filled') 
        axis off 
        set(fig1, 'Position', [500, 500, 64, 48]); 
        set(gca,'position',[0 0 1 1],'units','normalized') 

        F = getframe(gcf); 
        pause(0.05) 
        [X, Map] = frame2im(F);% 
        tmp_frame = rgb2gray(X); 

        tmp_im_fn = sprintf('tmp/image_seq%04d.png',obj_command); 
        imwrite(tmp_frame, tmp_im_fn) 

        clf 

       end 
      end 
     end 
    end 
end 
+0

Versuchen Sie, einen 'drawnow' vor' getframe' –

+0

Noch haben das gleiche Problem hinzuzufügen ... – user270700

Antwort

0

Ich habe einen Trick gefunden, um das Problem für jetzt zu lösen.

Ich habe,

fig1 = figure(1); 
drawnow 

vor der for Schleife und es scheint, alle Größen jetzt gleich sind.

Aber immer noch für eine bessere Lösung warten ...

+0

, dass die beste Lösung! Der ganze Zweck von "drawnnow" ist es, sicherzustellen, dass MATLAB genug Zeit zum Zeichnen/Ändern der Größe hat, bevor die nächsten Schritte ausgeführt werden. –

Verwandte Themen