clear all;
close all;
cnn_setenv;

%template library
mCNN.TemGroup='global_temlib';
%input image
InputImg=lbmp2cnn('piclib/avergra2.bmp');


%displays the input
subplot(1,2,1)
cnnshow(InputImg);
max(max(InputImg))

Step=0.5;
ThresValue=0.0;

for it=1:10

		%difference in first direction
		mCNN.INPUT1 = 1 .* zeros(size(InputImg));
		mCNN.STATE = 1 .* InputImg; 
		mCNN.Boundary = 0;
		mCNN.TimeStep = 1;
		mCNN.IterNum = 10;
		loadtem('THRES');
		mCNN.I=-ThresValue;
		runtem;
		THR=1 .* mCNN.OUTPUT;

		%check if it contains black pixels
		mCNN.INPUT1 = 1 .* zeros(size(InputImg));
		mCNN.STATE = 1 .* THR; 
		mCNN.Boundary = 2;
		mCNN.TimeStep = 1;
		mCNN.IterNum = 100;
		loadtem('BLACKPROP');
		runtem;
		BLACK=1 .* mCNN.OUTPUT;
		%check one pixel in the propagated image
		if BLACK(4,4)>0.2
			ThresValue=ThresValue+Step;
		else
			ThresValue=ThresValue-Step;
		end
		Step=Step/2;		
end
ThresValue
