close all clear all n1=40; n2 = 60; n3 = 100; q(1:n1) = linspace(1/n1,1,n1); q(n1+1:n1+n2) = linspace(1-2/n2,-1,n2); q(1+n1+n2:n1+n2+n3) = linspace(-1+1/n3,0,n3); qx = repmat(q, [200,1]); qy = repmat(q, [200,1])'; [n,m]=size(qx); singleChannelXderivative = createSparseMatrixFrom1dSeperableKernel(1, [0 -1 1],n,m); singleChannelYderivative = createSparseMatrixFrom1dSeperableKernel([0 -1 1],1,n,m); K = [singleChannelXderivative;singleChannelYderivative]; u = reshape(K'*[qy(:);qx(:)], [n,m]); ushow = u - min(u(:)); ushow = ushow ./max(ushow(:)); figure, imshow(ushow) imwrite(ushow, 'type2a.png', 'png'); img = u; temp = K*img(:); dy = reshape(temp(1:n*m), [n,m]); dx = reshape(temp(1+n*m:end), [n,m]); tv2a = sum(sum(max(abs(dx),[],3)+max(abs(dy),[],3))) sum(dx(:).*qx(:) + dy(:).*qy(:))