function myOctaveMontage(K) % myOctaveMontage yritää toimia vastaavasti kuin % montage Octave-ympäristössä. Kuvien järjestys % menee riveittäin vasemmalta oikealle. % % Epätoivoisesti % yrittää lisätä lukemista helpottavat akselit ja % tiedot kuvien määrästä ja suuruudesta. % % HUOM! Matlabia varten "myMontage" % % % Octave: axis "on" - Matlab: axis on % yms. yms. % % figureH = myOctaveMontage(K, [figTitle, figH]) % % figureH kahva luotuun kuvaan, aktivoi "figure(figH)" % K kuvakokoelma muodossa (r x c x 1 x n), % katso "help montage" % figTitle valinnainen otsikkorivi, johon lisätään % kuvien lkm ja koko % figH kahva olemassa olevaan ikkunaan, johon % kuvat halutaan piirretävän % % Esimerkki: % load 12345A; % myOctaveMontage(K, 'Alkuperäiset kuvat', 42); % Jukka Parviainen, parvi@hut.fi, 15.12.2005 if nargin == 0 error('Liian vähän argumentteja. Katso "help myOctaveMontage"'); end; % MATLAB: %if nargin <= 2 % figH = figure; %else % figH = figure(figH); % % MATLAB % % clf; %end; % Octave: if nargin > 1 error('Liikaa argumentteja - tämä on vain Octavelle!'); end; figH = figure; r = size(K,1); c = size(K,2); n = size(K,4); if nargin == 1 figTitle = ['Kuva/Fig ' num2str(figH)]; else figTitle = [figTitle ' [ n = ' num2str(n) ', (' num2str(r) ' x ' num2str(c) ') ]']; end; % Korvataan rivi MonK = montage(K); nR = ceil(sqrt(n)); % toivottavasti ei tule pyöristysvihreitä nC = round(sqrt(n)); if (nC * nR < n) nR = nR + 1; end; F = zeros(nR*r, nC*c); k = 0; for iR = [ 0 : nR-1 ] for iC = [ 0 : nC-1 ] k = k + 1; if (k > n) break; else sR = (iR*r) + 1; sC = (iC*c) + 1; F( sR : sR+r-1, sC : sC+c-1) = K(:,:,1,k); end; end; end; % MATLAB: % MonK = imshow(F, [0 255]); % Octave: imshow(F, 256); % Rivi MonK = montage(K) korvattu! % MATLAB: title(figTitle); % Octave: % ?? % gset title "sine with lines and cosine with impulses" % MATLAB: %MonRows = size(get(MonK,'CData'),1)/r; %MonCols = size(get(MonK,'CData'),2)/c; % Octave: MonRows = nR; MonCols = nC; yTickPos = round([0.5*r : r : (MonRows-0.5)*r+1]); xTickPos = round([0.5*c : c : (MonCols-0.5)*c+1]); % MATLAB: % axis on; % Octave: axis "on"; % MATLAB: %set(gca,'XTick',[],'XTickLabel',''); %set(gca,'YTick',yTickPos,'YTickLabel',[1 : MonCols : n]); % Octave: % ?