%M-Скрипт для поиска и замены одних символов на другие.
% признак - высота символа.
% Цель - демонстрация возможностей мат. пакетов MatLab/SciLab/Octave/FreeMat в области обработки изображений.
clear all
A=imread('page.tif');
B=imread('int.tif');
C=imread('int_ideal.tif');
A=imcomplement(A);
B=imcomplement(B);
C=imcomplement(C);
L = bwlabel(A);
L_B=bwlabel(B);
stats = regionprops(L,'basic');
statsB = regionprops(L_B,'basic');
t =[stats.BoundingBox];
t1=reshape(t, 4, []);
idx = find((t1(4, :)./statsB.BoundingBox(4)>0.9)&(t1(4, :)./statsB.BoundingBox(4)<1.1) );
bw3=xor(A, ismember(L,idx));
templ=zeros(size(A));
for i=1:length(idx)
templ(t1(2, idx(i)):(t1(2, idx(i))+size(C, 1)-1), t1(1, idx(i)): (t1(1, idx(i))+size(C, 2)-1))=C;
end
bw4=imcomplement(xor(bw3, templ));
imwrite(bw4, 'replace_symb.tif');