The mask is useful to filter the regions that are not interesting,
that could make further processing more difficult.
title('Difference between max and min');\r
imshow(changefig);\r
\r
+ mask = get_mask(changefig, meanfig);\r
+ figure\r
+ imshow(meanfig .* uint8(mask));\r
+ figure\r
+ plot(mean(double(meanfig), Weights = mask));\r
+\r
end % iii, Cycles for directories with files\r
--- /dev/null
+function mask = clean_mask(mask, strength)
+ if nargin < 2
+ strength = 8;
+ end
+ kernel = [1 1 1; 1 1 1; 1 1 1];
+ mask = 1 - mask;
+ for i = 1:strength
+ mask = conv2(mask, kernel, 'same') > 0;
+ end
+ mask = 1 - mask;
+ for i = 1:2*strength
+ mask = conv2(mask, kernel, 'same') > 0;
+ end
+ mask = 1 - mask;
+ for i = 1:strength
+ mask = conv2(mask, kernel, 'same') > 0;
+ end
+ mask = 1 - mask;
+end
--- /dev/null
+function mask = get_mask(changefig, meanfig, threshold, strength)
+ if nargin < 3
+ threshold = 200;
+ end
+
+ mask = (changefig > threshold);
+ if nargin >= 4
+ mask = clean_mask(mask, strength);
+ else
+ mask = clean_mask(mask);
+ end
+ mask = double(mask);
+end
+