image thumbnail
from MATLAB FOTOSHOP by Divakar Roy
Inspired By Adobe Photoshop

output_image=sketching(input_image,value)
function output_image=sketching(input_image,value)
%value ranges from -1 to 1.
value=(value+1)/2; % to transform from [-1,1] to [0,1].
[m n r]=size(input_image);
if r==3
    input_image=rgb2gray(input_image);
end
input_image=double(input_image);
%==========================================================================
for num=2:255
    BW1 = edge(input_image,'prewitt',num);
    inv=1-BW1;
    count_white=length(find(sort(reshape((not(inv)),m*n,1))));
    ratio=(m*n-count_white)/count_white;
    if(ratio>value*35)
        break,end
end
output_image = uint8(inv.*255);

Contact us at files@mathworks.com