<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/css" href="http://wiki2.linuxformat.ru/skins/common/feed.css?97"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://wiki2.linuxformat.ru/index.php?action=history&amp;feed=atom&amp;title=LXF137%3APerl</id>
		<title>LXF137:Perl - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://wiki2.linuxformat.ru/index.php?action=history&amp;feed=atom&amp;title=LXF137%3APerl"/>
		<link rel="alternate" type="text/html" href="http://wiki2.linuxformat.ru/index.php?title=LXF137:Perl&amp;action=history"/>
		<updated>2026-05-14T03:12:27Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.11.1</generator>

	<entry>
		<id>http://wiki2.linuxformat.ru/index.php?title=LXF137:Perl&amp;diff=13162&amp;oldid=prev</id>
		<title>Crazy Rebel: викификация, оформление, иллюстрация</title>
		<link rel="alternate" type="text/html" href="http://wiki2.linuxformat.ru/index.php?title=LXF137:Perl&amp;diff=13162&amp;oldid=prev"/>
				<updated>2011-12-13T07:14:11Z</updated>
		
		<summary type="html">&lt;p&gt;викификация, оформление, иллюстрация&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая статья&lt;/b&gt;&lt;/p&gt;&lt;div&gt;: '''Рас­по­зна­ва­ние об­ра­зов''' На­пи­шем про­грам­му, ко­то­рая чи­та­ет но­мер­ные зна­ки ав­то­мо­би­лей &lt;br /&gt;
&lt;br /&gt;
==Perl: Об­на­ру­жим объ­ек­ты==&lt;br /&gt;
&lt;br /&gt;
{{Цикл/Perl}}[[Категория:Учебники]][[Категория:Perl]]&lt;br /&gt;
&lt;br /&gt;
: '''Часть 4''': Реа­ли­за­ция объ­ек­тов в ''Perl'' ос­тав­ля­ет же­лать луч­ше­го, но это не зна­чит, что с его по­мо­щью нель­зя на­хо­дить объ­ек­ты на фо­то­гра­фи­ях, счи­та­ет '''Ми­ха­ил Смир­нов'''.&lt;br /&gt;
&lt;br /&gt;
Мно­гие прак­ти­че­ские при­ло­жения об­ра­бот­ки и ана­ли­за изо­бра­жений вклю­ча­ют про­це­ду­ру об­на­ру­жения и рас­по­зна­вания объ­ек­тов. В эту сфе­ру по­па­да­ют мно­гие за­да­чи со­вре­мен­но­сти: от ме­ди­цин­ских ис­сле­до­ваний до на­ви­га­ции ав­то­ма­ти­че­ских косми­че­ских стан­ций. В исто­ри­че­ском плане наи­боль­шую из­вест­ность по­лу­чи­ли ме­то­ды сравнения с эта­ло­ном, оцениваю­щие сте­пень кор­ре­ля­ции объ­ек­та об­на­ру­жения и эта­ло­на. В по­следние де­ся­ти­ле­тия ин­тен­сив­но раз­ви­ва­лись ме­то­ды рас­по­зна­вания об­ра­зов, осно­ван­ные на фор­маль­ном (струк­тур­ном или се­ман­ти­че­ском) опи­сании изо­бра­жений. К успе­хам фор­маль­ных опи­саний мож­но отнести при­ло­жения по рас­по­зна­ванию пе­чат­но­го тек­ста, от­пе­чат­ков паль­цев, клас­си­фи­ка­ции хро­мо­сом в био­ме­ди­цин­ских при­ло­жениях и так да­лее. В рас­по­зна­вании об­ра­зов по­лу­чи­ли дальней­шее раз­ви­тие и искусствен­&lt;br /&gt;
ные ней­рон­ные се­ти, основ­ное пре­иму­ще­ство ко­то­рых за­клю­ча­ет­ся в на­ли­чии универ­саль­но­го ме­ханиз­ма обу­чения. Вме­сте с тем, в ря­де экстре­маль­ных за­дач об­на­ру­жения ме­тод сравнения с эта­ло­ном оста­ет­ся до­минирую­щим.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание=[[Изображение:LXF137_73_1.jpg|Рис. 1|300px]]   Рис. 1. Фотогра­фическая карта местности: а) полутоновое входное изображе­ние; б) контурное представление.|Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
Яр­ким при­ме­ром слу­жат систе­мы на­ви­га­ции и на­ве­дения кры­ла­тых ра­кет по рель­е­фу ме­ст­но­сти. В ка­че­стве эта­ло­нов ис­поль­зу­ют­ся кар­ты ме­ст­но­сти, изо­бра­жения ко­то­рых пред­ва­ри­тель­но за­но­сят­ся в па­мять бор­то­во­го ком­пь­ю­те­ра. В хо­де по­ле­та ви­део­систе­ма ра­ке­ты сканиру­ет ме­ст­ность, а ком­пь­ю­тер оценива­ет кор­ре­ля­цию те­ку­ще­го изо­бра­жения ме­ст­но­сти с на­бо­ром эта­ло­нов и кор­рек­ти­ру­ет по­ло­жение ра­ке­ты в про­стран­стве от­но­си­тель­но рас­чет­ной тра­ек­то­рии по­ле­та. В систе­му на­ве­дения кры­ла­той ра­ке­ты вхо­дит элек­трон­но-оп­ти­че­ская кор­ре­ля­ци­он­ная под­систе­ма, ко­то­рая вы­да­ет ре­зуль­та­ты в ре­аль­ном вре­мени. Циф­ро­вые кар­ти­ны-эта­ло­ны пред­ва­ри­тель­но от­сня­тых рай­онов ме­ст­но­сти по­сле­до­ва­тель­но вво­дят­ся в элек­трон­но-оп­ти­че­ский кор­ре­ля­тор по ме­ре пе­ре­ме­щения ра­ке­ты вдоль тра­ек­то­рии по­ле­та. Бор­то­вой ком­пь­ю­тер оценива­ет ве­ли­чи­ны кор­ре­ля­ции и про­кла­ды­ва­ет курс ра­ке­ты по рель­е­фу ме­ст­но­сти. Нуж­но от­ме­тить, что в со­от­вет­ствии со свой­ства­ми зри­тель­но­го воспри­ятия для улуч­шения ре­зуль­та­тов сравнения при­ме­ня­ет­ся кор­ре­ля­ция по кон­ту­рам рель­е­фа ме­ст­но­сти. На рис. 1 пред­став­лен при­мер фо­то­гра­фи­че­ской кар­ты ме­ст­но­сти и её кон­тур­ное (гра­ди­ент­ное) пред­став­ление. Кон­тур­ное пред­став­ление мо­жет быть по­лу­че­но с по­мо­щью, на­при­мер, диф­фе­рен­ци­аль­но­го опе­ра­то­ра Со­бе­ля или с по­мо­щью вы­со­ко­частот­ной фильт­ра­ции ви­део­дан­ных.&lt;br /&gt;
&lt;br /&gt;
Ра­зу­ме­ет­ся, на дан­ном уро­ке мы по­ста­вим пе­ред со­бой бо­лее скром­ную и ку­да бо­лее мир­ную за­да­чу, а имен­но: реа­ли­зу­ем об­на­ру­жи­тель-кор­ре­ля­тор для про­стых сцен. Для нас бу­дет ва­жен прин­цип по­строения та­ко­го об­на­ру­жи­те­ля на прак­ти­че­ском уровне с по­мо­щью про­грамм­ных средств язы­ка ''Perl''.&lt;br /&gt;
&lt;br /&gt;
===Об­на­ру­жение, раз­ли­чение, опознавание===&lt;br /&gt;
&lt;br /&gt;
Джон­сон [J. Johnson], ис­сле­дуя влияние ви­део­систем на воспри­ятие во­ен­ных объ­ек­тов, уста­но­вил три основ­ных уров­ня ви­дения, ха­рак­те­ри­зую­щих про­цесс ото­жде­ств­ления изо­бра­жений дан­ных объ­ек­тов: об­на­ру­жение (по­яв­ление объ­ек­та в по­ле зрения), раз­ли­чение (раз­биение на клас­сы: тан­ки, ав­то­мо­би­ли) и опо­зна­вание ти­па объ­ек­та (на­при­мер, на­блю­да­ет­ся танк t-72). На рис. 2 ил­лю­ст­ри­ру­ет­ся кри­те­рий Джон­со­на, где сле­ва по­ка­за­ны пе­рио­ды строч­ной раз­верт­ки те­ле­ви­зи­он­ной систе­мы на­блю­дения, а спра­ва – кон­тур­ное изо­бра­жение ав­то­мо­би­ля. Та­ким об­ра­зом, Джон­сон уста­но­вил, что чис­ло по­лу­пе­рио­дов раз­верт­ки, при­хо­дя­щих­ся на минималь­ный раз­мер объ­ек­та, долж­но быть рав­но 2 (+1/-0.5) для об­на­ру­жения (рис. 2а), 8 (+1.6/-0.4) для клас­си­фи­ка­ции (рис. 2б) и 12.8 (+3.2/-2.8) для опо­зна­вания (рис. 2в).&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание=[[Изображение:LXF137_73_2.jpg|Рис. 2|300px]]  Рис. 2. Иллюстрации к критерию Джонсона: а) уровень обнаруже­ния объектов; б) уровень классификации объектов; в) уровень опо­знавания типа объекта.|Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
Сле­до­ва­тель­но, ес­ли мы уста­но­вим, что в изо­бра­жении име­ют­ся тан­ки и ав­то­ма­ши­ны, то мы ре­шим за­да­чу об­на­ру­жения. Ес­ли нам уда­ст­ся от­де­лить изо­бра­жения тан­ков от изо­бра­жений ав­то­мо­би­лей, то мы ре­шим за­да­чу клас­си­фи­ка­ции. И, на­конец, ес­ли мы смо­жем ска­зать, что танк на изо­бра­жении яв­ля­ет­ся россий­ским т-72, а не аме­ри­кан­ским M1A2, мы ре­шим за­да­чу опо­зна­вания ти­па.&lt;br /&gt;
&lt;br /&gt;
===Зна­чи­мость кон­ту­ров===&lt;br /&gt;
&lt;br /&gt;
Из ис­сле­до­ваний зри­тель­но­го ана­ли­за­то­ра из­вест­но, что основ­ную ин­фор­ма­цию о зри­тель­ных об­раз­ах несут кон­ту­ры объ­ек­тов и рез­кие пе­ре­па­ды яр­ко­сти на границах по­следних. Про­стей­шей про­це­ду­рой для вы­де­ления кон­ту­ров объ­ек­тов яв­ля­ет­ся вы­чис­ление раз­но­стей зна­чений яр­ко­сти ме­ж­ду со­седними эле­мен­та­ми изо­бра­жения, что пред­став­ля­ет со­бой про­це­ду­ру диф­фе­рен­ци­ро­вания. Чем боль­ше бу­дут эти раз­но­сти, тем сильнее про­явят­ся кон­ту­ры объ­ек­тов в изо­бра­жении. Наи­боль­шим зна­чениям раз­но­стей бу­дут со­от­вет­ство­вать мак­си­му­мы гра­ди­ен­та яр­ко­сти. Эк­ви­ва­лен­том про­стран­ствен­но­му диф­фе­рен­ци­ро­ванию в плоско­сти изо­бра­жения бу­дет при­менение гра­ди­ент­но­го фильт­ра в частот­ной об­ласти. При­ме­ром та­ко­го фильт­ра мо­жет слу­жить фор­му­ла:&lt;br /&gt;
&lt;br /&gt;
 H(u,v) = u&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; + v&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
где ''u, v'' – про­стран­ствен­ные часто­ты. Дей­ствие дан­но­го фильт­ра как раз и пред­став­ле­но на рис. 1а. Про­грамм­ную реа­ли­за­цию гра­ди­ент­но­го фильт­ра мы рас­смот­рим чуть ниже, со­вме­ст­но с вы­полнением про­це­ду­ры сравнения с эта­ло­ном, ко­то­рая по­лу­чи­ла на­звание со­гла­со­ван­ной фильт­ра­ции.&lt;br /&gt;
&lt;br /&gt;
===Со­гла­со­ван­ная фильт­ра­ция===&lt;br /&gt;
&lt;br /&gt;
Со­гла­со­ван­ный фильтр был впер­вые ис­поль­зо­ван для об­на­ру­жения сиг­на­лов в ра­дио­ло­ка­ции. В од­ной из пре­ды­ду­щих ста­тей цик­ла ([[LXF135:Perl|LXF135]]) мы рас­смот­ре­ли про­це­ду­ру фильт­ра­ции для по­вы­шения ка­че­ства фо­то­изо­бра­жения. Для это­го мы сфор­ми­ро­ва­ли фильтр ''H(u,v)'' и ум­но­жи­ли его на спектр фо­то­изо­бра­жения ''S(u,v)''. На фор­маль­ном уровне, с по­зи­ции тео­рии линей­ной фильт­ра­ции, как фильтр для по­вы­шения ка­че­ства, так и фильтр для со­гла­со­ван­ной фильт­ра­ции рав­но­цен­ны. Основ­ное от­ли­чие со­гла­со­ван­но­го фильт­ра со­сто­ит в том, что его им­пульс­ная ха­рак­те­ри­сти­ка ''h(x,y)'' долж­на быть со­гла­со­ва­на и со­пря­же­на с функ­ци­ей объ­ек­та ''s(x,y)'':&lt;br /&gt;
&lt;br /&gt;
 h(x,y) = s(x&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;-x, y&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;-y).  (1)&lt;br /&gt;
&lt;br /&gt;
Бу­дем пе­ре­ме­щать от­клик ''h(x,y)'' от­но­си­тель­но объ­ек­та и вы­чис­лять кор­ре­ля­цию ме­ж­ду дву­мя эти­ми функ­ция­ми. Оче­вид­но, что мак­си­мум кор­ре­ля­ции бу­дет достиг­нут в мо­мент их со­вме­щения. Та­кая про­це­ду­ра по­лу­чи­ла на­звание сверт­ки двух функ­ций. Функ­ция со­гла­со­ван­но­го фильт­ра рас­счи­ты­ва­ет­ся как пре­об­ра­зо­вание Фу­рье функ­ции от­кли­ка (1):&lt;br /&gt;
&lt;br /&gt;
 H(u,v) = S&amp;lt;sup&amp;gt;*&amp;lt;/sup&amp;gt;(u,v)exp{-j(u·x&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; + v·y&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;)},  (2)&lt;br /&gt;
&lt;br /&gt;
где ''S(u,v)'' – спектр эта­ло­на (1), ''j'' – мнимая единица, а знак '''*''' обо­зна­ча­ет ком­плекс­ное со­пря­жение. Как мы ви­дим, функ­ция со­гла­со­ван­но­го фильт­ра яв­ля­ет­ся ком­плекс­ной, и по­это­му в про­грамм­ной реа­ли­за­ции мы долж­ны пре­ду­смот­реть пе­ре­мно­жение ком­плекс­ных чи­сел. Ниже пред­став­лен про­грамм­ный код, реа­ли­зую­щий со­гла­со­ван­ную фильт­ра­цию с по­мо­щью гра­ди­ент­но­го со­гла­со­ван­но­го фильт­ра. Вход­ное изо­бра­жение пред­ва­ри­тель­но за­но­сит­ся в дву­мер­ный мас­сив '''@re'''. Раз­мер­ность вход­но­го изо­бра­жения рав­на '''N × N''' то­чек и оп­ре­де­ля­ет­ся в про­грам­ме па­ра­мет­ром '''$N''', а раз­мер­ность эта­ло­на ''s(x,y)'' за­да­ет­ся па­ра­мет­ра­ми '''$sx''' по ши­рине и '''$sy''' по вы­со­те.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=perl&amp;gt;&lt;br /&gt;
 for($j=0;$j&amp;lt;$N; $j++){&lt;br /&gt;
 for($i=0;$i&amp;lt;$N; $i++){&lt;br /&gt;
    $im[$i][$j] = 0;&lt;br /&gt;
    $re1[$i][$j] = 0;&lt;br /&gt;
    $im1[$i][$j] = 0;&lt;br /&gt;
 }}&lt;br /&gt;
 &amp;amp;d2cdft( \@re,\@im,\$N,\$PI );&lt;br /&gt;
 for($j=0;$j&amp;lt;$sy; $j++){&lt;br /&gt;
 for($i=0;$i&amp;lt;$sx; $i++){&lt;br /&gt;
    $re1[$i][$j] = $s[$i][$j];&lt;br /&gt;
 }}&lt;br /&gt;
 &amp;amp;d2cdft( \@re1,\@im1,\$N,\$PI );&lt;br /&gt;
 $N2 = int($N/2);&lt;br /&gt;
 for($j=0;$j&amp;lt;$N; $j++){&lt;br /&gt;
    $u = $j;&lt;br /&gt;
    if($j &amp;gt; $N2) { $u = $j - $N;}&lt;br /&gt;
    for($i=0;$i&amp;lt;$N; $i++){&lt;br /&gt;
       $v = $i;&lt;br /&gt;
       if($i &amp;gt; $N2) { $v = $i - $N;}&lt;br /&gt;
       $gr = ($u**2 + $v**2)/$N;&lt;br /&gt;
       $Ure = $gr*( $re[$i][$j]*$re1[$i][$j] + $im[$i][$j]*$im1[$i][$j] );&lt;br /&gt;
       $im = $gr*( $im[$i][$j]*$re1[$i][$j] - $re[$i][$j]*$im1[$i][$j] );&lt;br /&gt;
       $re[$i][$j] = $Ure;&lt;br /&gt;
       $im[$i][$j] = $im;&lt;br /&gt;
 }}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
По­сле пре­об­ра­зо­вания Фу­рье вход­но­го изо­бра­жения '''@re''' эле­мен­ты мас­си­ва '''$re[$i][$j]''' и '''$im[$i][$j]''' бу­дут пред­став­лять со­бой ве­ще­ствен­ную и мнимую части спек­тра ис­ход­но­го изо­бра­жения. Пре­об­ра­зо­вание Фу­рье осу­ще­ств­ля­ет­ся с по­мо­щью под­про­грам­мы '''d2cdft()''' бы­ст­ро­го пре­об­ра­зо­вания Фу­рье, опи­сание ко­то­рой бы­ло да­но в пре­ды­ду­щих стать­ях цик­ла ([[LXF135:Perl|LXF135]]).&lt;br /&gt;
&lt;br /&gt;
Ком­плекс­ные эле­мен­ты мас­си­вов '''$re1[$i][$j]''' и '''$im1[$i][$j]''' со­гла­со­ван­но­го фильт­ра так­же по­лу­че­ны с по­мо­щью под­про­грам­мы '''d2cdft()''', ко­то­рая при­ме­ня­ет­ся к функ­ции эта­ло­на. Пе­ре­мно­жение эле­мен­тов мас­си­ва спек­тра ис­ход­но­го изо­бра­жения и эле­мен­тов со­гла­со­ван­но­го фильт­ра осу­ще­ств­ля­ет­ся по пра­ви­лу ум­но­жения двух ком­плекс­ных чи­сел. Ре­зуль­тат пе­ре­мно­жения ком­плекс­ных чи­сел ум­но­жа­ет­ся на зна­чения функ­ции гра­ди­ент­но­го фильт­ра '''$gr''', вы­чис­ляе­мой в ка­ж­дой точ­ке спек­тра как сум­мы квад­ра­тов про­стран­ствен­ных частот (транс­фор­мант) '''$u''' и '''$v'''.&lt;br /&gt;
&lt;br /&gt;
Что­бы по­лу­чить ре­зуль­ти­рую­щие кор­ре­ля­ци­он­ные от­кли­ки, необ­хо­ди­мо вы­полнить об­рат­ное пре­об­ра­зо­вание Фу­рье с по­мо­щью под­про­грам­мы '''d2cdfti()''' в со­от­вет­ствии с про­грамм­ным ко­дом:&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание=[[Изображение:LXF137_74_1.jpg|Рис. 3|300px]] Рис. 3. Обнаруже­ние символов циф­ры 3: а) исходное изображение; б) результат согла­сованной фильтра­ции с двоичным эталоном цифры 3; в) сечение корреля­ционного поля.|Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=perl&amp;gt;&lt;br /&gt;
 &amp;amp;d2cdfti( \@re,\@im,\$N,\$PI );&lt;br /&gt;
 $max = 0;&lt;br /&gt;
 for($j=0;$j&amp;lt;$N; $j++){&lt;br /&gt;
 for($i=0;$i&amp;lt;$N; $i++){&lt;br /&gt;
      if( $re[$i][$j] &amp;gt; $max){ $max = abs($re[$i][$j]);}&lt;br /&gt;
 }}&lt;br /&gt;
 for($j=0;$j&amp;lt;$N; $j++){&lt;br /&gt;
 for($i=0;$i&amp;lt;$N; $i++){&lt;br /&gt;
      $out[$i][$j] = abs(255*($re[$i][$j]/$max));&lt;br /&gt;
 }}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дву­мер­ные мас­си­вы '''@re''' и '''@im''', на вхо­де под­про­грам­мы '''d2cdfti()''', яв­ля­ют­ся ре­зуль­та­том ум­но­жения спек­тра вход­но­го изо­бра­жения на со­гла­со­ван­ный фильтр, как это бы­ло по­ка­за­но в пре­ды­ду­щем фраг­мен­те ко­да. На вы­хо­де под­про­грам­мы '''d2cdfti()''' дву­мер­ный мас­сив '''@re''' бу­дет пред­став­лять со­бой ре­зуль­тат кор­ре­ля­ции эта­ло­на с вход­ным изо­бра­жением. Вы­ход­ное кор­ре­ля­ци­он­ное по­ле запи­сы­ва­ет­ся в мас­сив '''@out''', эле­мен­ты ко­то­ро­го '''$out[$i][$j]''' нор­ми­ру­ют­ся к мак­си­маль­но­му зна­чению '''$max''' и пред­став­ля­ют­ся в ви­де чи­сел от 0 до 255. В ка­че­стве при­ме­ра рас­смот­рим об­на­ру­жение сим­во­лов на но­мер­ных зна­ках ав­то­мо­би­лей. На рис. 3 пред­став­ле­но ис­ход­ное изо­бра­жение и ре­зуль­та­ты об­на­ру­жения циф­ры 3 на но­мер­ном зна­ке ав­то­ма­ши­ны с по­мо­щью со­гла­со­ван­ной гра­ди­ент­ной фильт­ра­ции, про­грамм­ную реа­ли­за­цию ко­то­рой мы рас­смот­ре­ли. Эта­ло­ном для об­на­ру­жения слу­жит дво­ич­ное изо­бра­жение циф­ры 3.&lt;br /&gt;
&lt;br /&gt;
Раз­мер­ность ис­ход­но­го изо­бра­жения на рис. 3а со­став­ля­ет '''1024 × 1024''' от­сче­тов. Раз­мер­ность эта­ло­на рав­на '''sx=19''' от­сче­там по ши­рине и '''sy=40''' от­сче­там по вы­со­те. От­ме­тим, что пи­ки мак­си­му­мов кор­ре­ля­ции бу­дут сме­ще­ны от­но­си­тель­но объ­ек­тов на по­ло­ви­ну раз­ме­ров эта­ло­на, то есть на ве­ли­чи­ну '''sx/2''' по ши­рине и '''sy/2''' по вы­со­те.&lt;br /&gt;
&lt;br /&gt;
Сде­ла­ем ак­цент на од­ном важ­ном мо­мен­те со­гла­со­ван­ной фильт­ра­ции. Фильтр (2) яв­ля­ет­ся про­стран­ствен­но-ин­ва­ри­ант­ным, или, ина­че го­во­ря, его дей­ствие спра­вед­ли­во для все­го вход­но­го изо­бра­жения. Это вы­те­ка­ет из фор­му­лы (1) для сверт­ки, в ко­то­рой опе­ра­ция сверт­ки вход­но­го изо­бра­жения ''s(x,y)'' с от­кли­ком ''h(x,y)'' осу­ще­ств­ля­ет­ся по всей плоско­сти при пе­ре­ме­щении эта­ло­на вдоль осей ''x&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;‑x'' и y&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;‑y. По этой при­чине со­гла­со­ван­ный фильтр обес­пе­чит об­на­ру­жение сра­зу несколь­ких (мно­же­ства) объ­ек­тов, рас­по­ло­жен­ных про­из­воль­ным об­ра­зом во вход­ном изо­бра­жении.&lt;br /&gt;
&lt;br /&gt;
===Во­дя­ные зна­ки===&lt;br /&gt;
&lt;br /&gt;
Про­бле­ма со­блю­дения ав­тор­ских прав при раз­ме­щении фо­то­гра­фий в се­ти Ин­тернет или за­да­ча по­иска изо­бра­жений с по­мо­щью по­иско­вых систем так или ина­че тре­бу­ют со­постав­ления мно­же­ства фо­то­изо­бра­жений с эта­ло­ном или опи­санием изо­бра­жения. В этом слу­чае, со­гла­со­ван­ная фильт­ра­ция мо­жет рас­смат­ри­вать­ся как один из ин­ст­ру­мен­тов ре­шения по­доб­ных за­дач.&lt;br /&gt;
&lt;br /&gt;
Наи­бо­лее по­пу­ляр­ные по­иско­вые систе­мы в на­стоя­щее вре­мя пре­достав­ля­ют воз­мож­ность по­иска изо­бра­жений на осно­ве их тек­сто­во­го опи­сания, со­дер­жа­ще­го­ся в тэ­гах ко­да HTML-до­ку­мен­та. Со­от­вет­ствен­но, сте­пень ре­ле­вант­но­сти по­иско­вым за­про­сам мо­жет не со­от­вет­ство­вать изо­бра­жениям, пре­достав­ляе­мым в вы­да­че ре­зуль­та­тов по­иска. Поль­зо­ва­те­лям при­хо­дит­ся про­смат­ри­вать мно­же­ство страниц, что­бы най­ти тре­буе­мое изо­бра­жение. &lt;br /&gt;
&lt;br /&gt;
Бо­лее про­дви­ну­тые (но менее из­вест­ные) ре­сур­сы пред­ла­га­ют сер­ви­сы, ис­поль­зую­щие ме­то­ды рас­по­зна­вания об­ра­зов, на­прав­лен­ные на клас­си­фи­ка­цию объ­ек­тов в изо­бра­жении. Од­на­ко по­иск циф­ро­вых фо­то­гра­фий по объ­ек­там, при­сут­ствую­щим в сним­ках, по­ка да­лёк от удов­ле­тво­ри­тель­но­го ре­шения, ес­ли в ка­че­стве оп­ти­му­ма взять наш зри­тель­ный ана­ли­за­тор. И ви­ной это­му не столь­ко ал­го­рит­мы рас­по­зна­вания, сколь­ко слож­ность са­мой про­бле­мы ма­шин­но­го рас­по­зна­вания об­ра­зов.&lt;br /&gt;
&lt;br /&gt;
Одним из ком­про­мис­сов в ре­шении за­да­чи по­иска фо­то­гра­фий в се­ти Ин­тернет мо­жет по­слу­жить спо­соб клас­си­фи­ка­ции изо­бра­жений с ис­поль­зо­ванием ви­ди­мых во­дя­ных зна­ков. Нанесение их на изо­бра­жение уже сей­час при­ме­ня­ет­ся во мно­гих ре­сур­сах ми­ро­вой се­ти. Как пра­ви­ло, ви­ди­мой мет­кой слу­жит ад­рес сай­та в се­ти Ин­тернет, ло­го­тип ре­сур­са или неко­то­рая от­вле­чен­ная мет­ка ти­па зна­ка '''©'''. При­ме­ром нанесения про­зрач­ных ме­ток мо­гут слу­жить кар­ты по­иско­вой систе­мы Google, в ото­бра­жае­мое по­ле ко­то­рых встраи­ва­ют­ся во­дя­ные зна­ки с про­зрач­ной осно­вой. По­про­бу­ем и мы реа­ли­зо­вать по­доб­ный под­ход. При этом сна­ча­ла встро­им ви­ди­мые во­дя­ные зна­ки в про­из­воль­ное изо­бра­жение, а за­тем по­пы­та­ем­ся об­на­ру­жить их с по­мо­щью про­грам­мы, при­ве­ден­ной вы­ше. Про­грамм­ный код для встраи­вания сим­во­ла '''©''' в фо­то­изо­бра­жение бу­дет та­ким:&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание=[[Изображение:LXF137_75_1.jpg|Рис. 4|300px]] Рис. 4. Фо­то­изо­бра­же­ние со встро­ен­ны­ми ви­ди­мы­ми зна­ка­ми ©.|Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=perl&amp;gt;&lt;br /&gt;
 $op = .075;&lt;br /&gt;
 $dh0 = 64;&lt;br /&gt;
 $dw0 = 64;&lt;br /&gt;
 $dh = 128;&lt;br /&gt;
 $dw = 128;&lt;br /&gt;
 $L = $N/128;&lt;br /&gt;
 for($h=0;$h&amp;lt;$L; $h++){&lt;br /&gt;
    $m = $h*$dh + $dh0;&lt;br /&gt;
    for($w=0;$w&amp;lt;$L; $w++){&lt;br /&gt;
       $n = $w*$dw + $dw0;&lt;br /&gt;
       for($j=0;$j&amp;lt;$sy;$j++){&lt;br /&gt;
          for($i=0;$i&amp;lt;$sx;$i++){&lt;br /&gt;
             $sum = $re[$i+$n][$j+$m] + $op*$re1[$i][$j];&lt;br /&gt;
             if($sum &amp;gt; 255){ $sum = 255;}&lt;br /&gt;
              $re[$i+$n][$j+$m]=$sum;&lt;br /&gt;
          }}&lt;br /&gt;
 }}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вход­ное и вы­ход­ное изо­бра­жения по­ме­ща­ют­ся в дву­мер­ный мас­сив '''@re'''. Па­ра­метр '''$op''' оп­ре­де­ля­ет непро­зрач­ность во­дя­но­го зна­ка от­но­си­тель­но ис­ход­но­го фо­то­изо­бра­жения и ра­вен в дан­ном слу­чае '''7,5 %'''. Па­ра­мет­ры '''$dh0''' и '''$dw0''' да­ют на­чаль­ные сме­щения (от­сту­пы) по вы­со­те и ши­рине фо­то­изо­бра­жения, со­от­вет­ствен­но. Зна­чения па­ра­мет­ров '''$dh''' и '''$dw''' за­да­ют шаг встраи­вания во­дя­ных зна­ков по вы­со­те и ши­рине сним­ка. Па­ра­метр '''$L''' оп­ре­де­ля­ет чис­ло встраи­вае­мых ме­ток как по вы­со­те, так и по ши­рине фо­то­изо­бра­жения. С по­мо­щью па­ра­мет­ров '''$sy''' и '''$sx''' за­да­ют­ся раз­ме­ры встраи­вае­мо­го зна­ка '''©''', а так же раз­ме­ры эта­ло­на '''©''' на эта­пе об­на­ру­жения. Зна­чение '''255''' слу­жит ог­раничи­те­лем на слу­чай воз­мож­но­го пре­вы­шения зна­чения яр­ко­сти. На рис. 4 пред­став­лен ре­зуль­тат встраи­вания про­зрач­но­го зна­ка '''©'''. Во­дя­ные зна­ки рав­но­мер­но раз­ме­ще­ны по по­лю изо­бра­жения, об­ра­зуя мат­ри­цу, имею­щую во­семь ря­дов и во­семь столб­цов.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|Содержание=[[Изображение:LXF137_75_2.jpg|Рис. 5|300px]] Рис. 5. Ре­зуль­та­ты об­на­ру­же­ния зна­ков '''©''' с по­мо­щью со­гла­со­ван­ной фильт­ра­ции: а) по­ле кор­ре­ля­ции; б) од­но из се­че­ний по­ля кор­ре­ля­ции.|Ширина=300px}}&lt;br /&gt;
&lt;br /&gt;
На рис. 5 пред­став­ле­ны ре­зуль­та­ты об­на­ру­жения иско­мых сим­во­лов '''©'''. В ка­че­стве эта­ло­на ис­поль­зо­ва­лось дво­ич­ное изо­бра­жение зна­ка '''©'''.&lt;br /&gt;
&lt;br /&gt;
Ана­лиз по­лу­чен­ных ре­зуль­та­тов по­зво­ля­ет нам сде­лать вы­вод, что при про­зрач­но­сти во­дя­ных зна­ков, рав­ной '''92,5 %''', ошиб­ки об­на­ру­жения (ошиб­ки I ро­да) от­сут­ству­ют, а так­же от­сут­ству­ют ошиб­ки лож­но­го об­на­ру­жения, то есть II ро­да. Ес­ли мы бу­дет уве­ли­чи­вать про­зрач­ность во­дя­ных зна­ков, тем са­мым умень­шая их ви­ди­мость, то неми­нуе­мо поя­вят­ся ошиб­ки лож­но­го об­на­ру­жения, а за­тем и ошиб­ки I ро­да. Уро­вень возник­но­вения оши­бок за­ви­сит от кон­крет­но­го вход­но­го изо­бра­жения. Для фо­то­изо­бра­жения на рис. 4 ошиб­ки II ро­да на­чи­на­ют по­яв­лять­ся при ве­ли­чине про­зрач­но­сти во­дя­ных зна­ков, рав­ной 95 %, а ошиб­ки I ро­да – при 97 %.&lt;br /&gt;
&lt;br /&gt;
В нашей ста­тье мы про­де­мон­ст­ри­ро­ва­ли воз­мож­но­сти ''Perl'' по ре­шению при­клад­ных за­дач об­на­ру­жения объ­ек­тов. От­ме­тим, что циф­ро­вые ме­то­ды в це­лом не обес­пе­чи­ва­ют вы­со­кой ско­ро­сти рас­че­та кор­ре­ля­ции дву­мер­ных мас­си­вов из-за боль­шого объ­е­ма вы­чис­лений. И чем боль­ше раз­мер вход­ных изо­бра­жений, тем ниже эта ско­рость. Имен­но по­это­му в систе­мах на­ви­га­ции крыла­тых ра­кет при­ме­ня­ют­ся оп­ти­че­ские кор­ре­ля­то­ры, упо­мя­нутые в начале.  Но гиб­кость и опе­ра­тив­ность про­грам­ми­ро­ва­ния на ''Perl'', в со­че­та­нии с мощью ма­те­ма­ти­че­ских мо­ду­лей ''Perl'', позволяют соз­давать&lt;br /&gt;
высокоэф­фек­тив­ные ал­го­рит­мы об­ра­бот­ки ви­део­дан­ных.&lt;/div&gt;</summary>
		<author><name>Crazy Rebel</name></author>	</entry>

	</feed>