|
|
|||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||
| Вход | |||||||||||||||||||||||||||||||||
|
Раздел "Обработка сигналов и изображений\Image Processing Toolbox"
И.М.Журавель "Краткий курс теории обработки изображений" В оглавление \ К следующему разделу \ К предыдущему разделу Регистрация изображений с помощью нормированной кросс-корреляции Иногда одни изображения являются подмножествами других. С помощью методов нормированной кросс-корреляции существует возможность определения их расположения и регистрации.
Обзор примеров Приведенные примеры включают следующие шаги:
Шаг 2: Выбор подобласти для каждого изображения % неитеративный rect_onion=[111 33 65 58]; rect_peppers=[163 47 143 151]; sub_onion=imcrop(onion,rect_onion); sub_peppers=imcrop(peppers,rect_peppers); % или % итеративный [sub_onion,rect_onion]=imcrop(onion); [sub_peppers,rect_peppers]=imcrop(peppers); % отображение подизображений figure, imshow(sub_onion) figure, imshow(sub_peppers)
Шаг 3: Нормированная кросс-корреляция и поиск координат пиков
Шаг 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 on h=imshow(recovered_onion); % отображение recovered_onion set(h, 'AlphaData', mask)
|
|
Всероссийская научная конференция "Проектирование научных и инженерных приложений в среде MATLAB" (май 2002 г.)
|
||
| На первую страницу \ Сотрудничество \ MathWorks \ SoftLine \ Exponenta.ru \ Exponenta Pro | ||
| E-mail: | ||
| Информация на сайте была обновлена 11.05.2004 |
Copyright 2001-2004 SoftLine Co Наши баннеры |
|