idamnjanovic@60: function P = thumbFromOp(op,m,n,sm,sn,grayscale) idamnjanovic@60: % Output matrix P, of size m x n, sampled at idamnjanovic@60: % sm x sn upper top idamnjanovic@60: idamnjanovic@60: % Copyright 2008, Ewout van den Berg and Michael P. Friedlander idamnjanovic@60: % http://www.cs.ubc.ca/labs/scl/sparco idamnjanovic@60: % $Id: thumbFromOp.m 1040 2008-06-26 20:29:02Z ewout78 $ idamnjanovic@60: idamnjanovic@60: if nargin < 6, grayscale = 0; end idamnjanovic@60: idamnjanovic@60: info = op([],0); idamnjanovic@60: idamnjanovic@60: sm = min(info{1},sm); idamnjanovic@60: sn = min(info{2},sn); idamnjanovic@60: M = zeros(sm,sn); idamnjanovic@60: idamnjanovic@60: for i=1:sn idamnjanovic@60: v = zeros(info{2},1); v(i) = 1; idamnjanovic@60: w = real(op(v,1)); idamnjanovic@60: idamnjanovic@60: M(:,i) = w(1:sm); idamnjanovic@60: end idamnjanovic@60: idamnjanovic@60: mn = min(min(M)); idamnjanovic@60: mx = max(max(M)); idamnjanovic@60: M = (M - mn) / (mx-mn); idamnjanovic@60: idamnjanovic@60: idxm = floor(linspace(1,sm+1,m+1)); idxm = idxm(1:end-1); idamnjanovic@60: idxn = floor(linspace(1,sn+1,n+1)); idxn = idxn(1:end-1); idamnjanovic@60: idamnjanovic@60: if grayscale idamnjanovic@60: P = 1-M(idxm,idxn); idamnjanovic@60: else idamnjanovic@60: clrmap = hsv; idamnjanovic@60: M = 1 + round(M * (length(clrmap)-1)); idamnjanovic@60: P = zeros(m,n,3); idamnjanovic@60: for j1=1:m idamnjanovic@60: for j2=1:n idamnjanovic@60: P(j1,j2,:) = clrmap(M(idxm(j1),idxn(j2)),:); idamnjanovic@60: end idamnjanovic@60: end idamnjanovic@60: end