www.gusucode.com > matlab非局部均值工具箱 > matlab非局部均值工具箱/matlab非局部均值工具箱/toolbox_nlmeans/toolbox/crop.m
function M = crop(M,n,c) % crop - crop an image to reduce its size % % M = crop(M,n,c); % % n is the new size of the image % c is the center of the grop % % Copyright (c) 2007 Gabriel Peyr? n0 = size(M); if nargin<2 n = round( n0(1:2)/2 ); end if nargin<3 || isempty(c) c = round( n0(1:2)/2 ); end if isempty(n) return; end if length(n)==1 n = [n n]; end if length(c)==1 c = [c c]; end c = round(c); selx = c(1)-ceil(n(1)/2)+1:c(1)+floor(n(1)/2); sely = c(2)-ceil(n(2)/2)+1:c(2)+floor(n(2)/2); selx(selx<1) = []; selx(selx>n0(1)) = []; sely(sely<1) = []; sely(sely>n0(2)) = []; M = M(selx,sely,:);