Шаг 4: Поиск общих относительных различий между изображениями

Общие различия между изображениями характеризуются положением пиков в матрице кросс-корреляции, а также размерами и местонахождением подизображений.

% поиск на основании корреляции[max_c, imax]=max(abs(c(:)));[ypeak, xpeak]=ind2sub(size(c), imax(1));corr_offset=[(xpeak-size(sub_onion, 2)) (ypeak-size(sub_onion, 1))];% относительное месторасположение подизображенийrect_offset=[(rect_peppers(1)-rect_onion(1)) (rect_peppers(2)-rect_onion(2))]; % поиск на основании общих относительных различийoffset=corr_offset+rect_offset;xoffset=offset(1);yoffset=offset(2); Шаг 5: Анализ подизображения, полученного из основного изображения Подизображение на исходном изображении.xbegin=xoffset+1;xend=xoffset+size(onion, 2);ybegin=yoffset+1;yend=yoffset+size(onion, 1); % Получение рассматриваемого подизображения и сравнение его с исходнымextracted_onion=peppers(ybegin:yend, xbegin:xend, :);if isequal(onion, extracted_onion) disp('onion.png получено из peppers.png')end Шаг 6: Отображение подизображения на пустом изображении с размерами исходного Расположим подизображение на исходном изображении на основании анализа различий.recovered_onion=uint8(zeros(size(peppers)));recovered_onion(ybegin:yend, xbegin:xend, :)=onion;figure, imshow(recovered_onion)

Шаг 7: Свойство прозрачности исходного изображения Создание прозрачной (или полупрозрачной) маски для непрозрачного исходного изображения.[m, n, p]=size(peppers);mask=ones(m, n); i=find(recovered_onion(:, :, 1)==0);mask(i)=.2; % экспериментирование с различными значениями прозрачности% наложение полупрозрачного рисункаfigure, imshow(peppers(:,:,1)) % отображение только красной составляющейhold onh=imshow(recovered_onion); % отображение recovered_onionset(h, 'AlphaData', mask)