ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² ΡƒΡ‡Ρ‘Π±Π΅, ΠΎΡ‡Π΅Π½ΡŒ быстро...
Π Π°Π±ΠΎΡ‚Π°Π΅ΠΌ вмСстС Π΄ΠΎ ΠΏΠΎΠ±Π΅Π΄Ρ‹

ΠžΠ±Π·ΠΎΡ€ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠ³ΠΎ зрСния OpenCV

Π Π΅Ρ„Π΅Ρ€Π°Ρ‚ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°ΠΌΠΈ ΠΎΡ‡Π΅Π½ΡŒ просты. ИдСя Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° пСрСсчитываСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ пиксСля Π² ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ Π² ΡΠΎΠΎΡ‚вСтствии с ΡˆΠ°Π±Π»ΠΎΠ½Π½ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ΠΉ (Ρ‚Π°ΠΊΠΆΠ΅ извСстной ΠΊΠ°ΠΊ ядро ΠΈΠ»ΠΈ маска, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π΅Ρ‘ Ρ€Π°Π·ΠΌΠ΅Ρ€ опрСдСляСт, ΠΊΠ°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅). Π­Ρ‚Π° маска Ρ…Ρ€Π°Π½ΠΈΡ‚ значСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π΅Π³ΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, насколько ΠΈ ΠΊΠ°ΠΊ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ сосСдниС пиксСли (ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ пиксСль) Π½Π° Π½ΠΎΠ²ΠΎΠ΅… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

ΠžΠ±Π·ΠΎΡ€ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠ³ΠΎ зрСния OpenCV (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° OpenCV Π±Ρ‹Π»Π° создана для обСспСчСния ΠΎΠ±Ρ‰Π΅ΠΉ инфраструктуры ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠ³ΠΎ зрСния ΠΈ Π΄Π»Ρ упрощСния использования машинного восприятия для коммСрчСских Ρ†Π΅Π»Π΅ΠΉ. Π‘ΡƒΠ΄ΡƒΡ‡ΠΈ Π»ΠΈΡ†Π΅Π½Π·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ BSD-ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠΌ, OpenCV ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ для прСдприятий использованиС ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ ΠΊΠΎΠ΄Π°.

Π’ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ имССтся Π±ΠΎΠ»Π΅Π΅ 2500 ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² ΡΠ΅Π±Ρ ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ классичСских ΠΈ ΡΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² машинного обучСния. Π­Ρ‚ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для обнаруТСния ΠΈ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡ Π»ΠΈΡ†, ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², опрСдСлСния дСйствий Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ° ΠΏΠΎ Π²ΠΈΠ΄Π΅ΠΎ, отслСТивания Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΉ, создания 3D-ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΏΠΎ Π²ΠΈΠ΄Π΅ΠΎ ΠΈΠ»ΠΈ Ρ„ΠΎΡ‚ΠΎ, создания 3D-Ρ‚ΠΎΡ‡Π΅Ρ‡Π½Ρ‹Ρ… ΠΎΠ±Π»Π°ΠΊΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ стСрСокамСр, совмСщСния ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ для получСния высокого Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, сопоставлСния ΠΈ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΠΎΡ…ΠΎΠΆΠΈΡ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, удалСния эффСкта «ΠΊΡ€Π°ΡΠ½Ρ‹Ρ… Π³Π»Π°Π·» ΠΈΠ· ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, сдСланных с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²ΡΠΏΡ‹ΡˆΠΊΠΈ, слСТСния Π·Π° Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡΠΌΠΈ Π³Π»Π°Π·, распознавания ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΊΠ»Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΡ… Π½Π° Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½Π½ΡƒΡŽ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. Π’ OpenCV насчитываСтся Π±ΠΎΠ»Π΅Π΅ 47 тысяч ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ сообщСства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈ ΠΎΡ†Π΅Π½ΠΎΡ‡Π½ΠΎΠ΅ количСство Π·Π°Π³Ρ€ΡƒΠ·ΠΎΠΊ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ 14 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ². Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡ…, ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Π³Ρ€ΡƒΠΏΠΏΠ°Ρ… ΠΈ ΠΏΡ€Π°Π²ΠΈΡ‚Π΅Π»ΡŒΡΡ‚Π²Π΅Π½Π½Ρ‹Ρ… ΠΎΡ€Π³Π°Π½Π°Ρ… [17].

Рассмотрим ΠΊΠ°ΠΊ OpenCV Ρ…Ρ€Π°Π½ΠΈΡ‚ Π΄Π°Π½Π½Ρ‹Π΅ самой ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π² Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠ΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ зависит ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ Π² ΠΏΠ°ΠΌΡΡ‚ΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° Π±ΡƒΠ΄Π΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ информация ΠΎΠ± ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ, ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ самый ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ способ. Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡ Π² OpenCV хранятся Π² ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ€Π΅ класса Mat. Π­Ρ‚ΠΎ сдСлано для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½ΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ программиста, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ благодаря классу Mat Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ постоянно Π²Ρ‹Π΄Π΅Π»ΡΡ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Ρ‚ΡŒ Π΅Ρ‘ ΠΏΠΎΡΠ»Π΅ использования. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ OpenCV автоматичСски Π²Ρ‹Π΄Π΅Π»ΡΡŽΡ‚ ΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°ΡŽΡ‚ ΠΏΠ°ΠΌΡΡ‚ΡŒ. Mat — это класс, содСрТащий Π΄Π²Π° Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ…: Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ (содСрТащий ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Ρ‚Π°ΠΊΡƒΡŽ ΠΊΠ°ΠΊ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹, ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для хранСния) ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ значСния пиксСлСй изобраТСния (принимая Π»ΡŽΠ±Ρ‹Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ для хранСния). Π Π°Π·ΠΌΠ΅Ρ€ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ являСтся постоянным, ΠΎΠ΄Π½Π°ΠΊΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ самой ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΎΡ‚ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡ ΠΊ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ. Π Π°Π·ΠΌΠ΅Ρ€ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ для хранСния изобраТСния зависит ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° самой ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ, Ссли ΠΎΠ½Π° Ρ‡Π΅Ρ€Π½ΠΎ-бСлая, Ρ‚ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ интСнсивности Π±Π΅Π»ΠΎΠ³ΠΎ.

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°ΠΌΠΈ ΠΎΡ‡Π΅Π½ΡŒ просты. ИдСя Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° пСрСсчитываСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ пиксСля Π² ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ Π² ΡΠΎΠΎΡ‚вСтствии с ΡˆΠ°Π±Π»ΠΎΠ½Π½ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ΠΉ (Ρ‚Π°ΠΊΠΆΠ΅ извСстной ΠΊΠ°ΠΊ ядро ΠΈΠ»ΠΈ маска, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π΅Ρ‘ Ρ€Π°Π·ΠΌΠ΅Ρ€ опрСдСляСт, ΠΊΠ°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅). Π­Ρ‚Π° маска Ρ…Ρ€Π°Π½ΠΈΡ‚ значСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π΅Π³ΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, насколько ΠΈ ΠΊΠ°ΠΊ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ сосСдниС пиксСли (ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ пиксСль) Π½Π° Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π‘ ΠΌΠ°Ρ‚СматичСской Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния происходит расчСт ΡΡ€Π΅Π΄Π½Π΅Π²Π·Π²Π΅ΡˆΠ΅Π½Π½ΠΎΠ³ΠΎ значСния с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ маски. Рассмотрим Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ контрастности изобраТСния. Π’ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ для этого Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρƒ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ пиксСля, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ:

ΠžΠ±Π·ΠΎΡ€ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠ³ΠΎ зрСния OpenCV.

ΠŸΡ€ΠΈ использовании маски, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ Ρ†Π΅Π½Ρ‚Ρ€ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ маски (Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ рСгистрС, ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½Π½ΠΎΠΌ Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌ индСксом) Π½Π° ΠΏΠΈΠΊΡΠ΅Π»ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ. Π”Π°Π»Π΅Π΅ происходит суммированиС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ пиксСлСй, ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Π½Π° ΠΏΠ΅Ρ€Π΅ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ΡΡ значСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹. Π’Π°ΠΊ происходит Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ пиксСль изобраТСния Π½Π΅ ΠΏΠΎΠΌΠ΅Π½ΡΠ΅Ρ‚ своС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΡΠΎΠΎΡ‚вСтствиС со Π·Π½Π°Ρ‡Π΅Π½ΠΈΡΠΌΠΈ маски.

Π’ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ Ρ‚Π°ΠΊ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ всС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠ³ΠΎ зрСния OpenCV. Π’ΠΎ Π΅ΡΡ‚ΡŒ происходит ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ матСматичСский расчСт пиксСлСй Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ маски ΠΈ Ρ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ ограничСниями.

Рассмотрим Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠ³ΠΎ зрСния OpenCV, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ…ΡΡ Π² Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΠΎΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.

ΠœΠ΅Ρ‚ΠΎΠ΄ Canny.

ΠœΠ΅Ρ‚ΠΎΠ΄ Canny Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ края (ΠΈΠ»ΠΈ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹) изобраТСния. ΠšΡ€Π°Ρ (Π³Ρ€Π°Π½ΠΈΡ†Ρ‹) — это Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΡ€ΠΈΠ²Ρ‹Π΅ Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ, вдоль ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… происходит Ρ€Π΅Π·ΠΊΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ яркости ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π²ΠΈΠ΄Ρ‹ нСоднородностСй. ΠŸΡ€ΠΎΡ‰Π΅ говоря, края — это Ρ‚Π΅ ΠΌΠ΅ΡΡ‚Π°, Π³Π΄Π΅ происходит измСнСния Ρ†Π²Π΅Ρ‚Π° изобраТСния, освСщСнности ΠΈΠ»ΠΈ Π³Π»ΡƒΠ±ΠΈΠ½Ρ‹ сцСны, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ измСняСтся ориСнтация повСрхности. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ края ΠΎΡ‚Ρ€Π°ΠΆΠ°ΡŽΡ‚ основныС Π²Π°ΠΆΠ½Ρ‹Π΅ особСнности изобраТСния. Π”Π΅Ρ‚Π΅ΠΊΡ‚ΠΎΡ€ КСнни являСтся самым популярным ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ выдСлСния Π³Ρ€Π°Π½ΠΈΡ†. Он ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ Π² Π΄Π°Π»Π΅ΠΊΠΎΠΌ 1986 Π³ΠΎΠ΄Ρƒ, Π½ΠΎ Π΄ΠΎ ΡΠΈΡ… ΠΏΠΎΡ€ являСтся ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ°ΠΌΡ‹Ρ… эффСктивных. Π”Π΅Ρ‚Π΅ΠΊΡ‚ΠΎΡ€ КСнни ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ для Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ сущСствСнных характСристик изобраТСния ΠΈ ΡΠΎΠΊΡ€Π°Ρ‰Π΅Π½ΠΈΠ΅ объСма ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ для ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°.

Π“Ρ€Π°Π½ΠΈΡ†Ρ‹ Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ часто находятся Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… направлСниях, ΠΈΠ·-Π·Π° этого Π² Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ΅ КСнни ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π° для выявлСния Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ…, Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΈ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… Π³Ρ€Π°Π½ΠΈΡ†. Π’ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π²ΡˆΠΈΡΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ обнаруТСния Π³Ρ€Π°Π½ΠΈΡ† (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ БобСля) получаСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠΉ Π² Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ (GΡƒ) ΠΈ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ (Gx).

Из ΡΡ‚ΠΎΠ³ΠΎ Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΡƒΠ³ΠΎΠ» направлСния Π³Ρ€Π°Π½ΠΈΡ†Ρ‹:

ΠžΠ±Π·ΠΎΡ€ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠ³ΠΎ зрСния OpenCV.

Π£Π³ΠΎΠ» направлСния Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ округляСтся Π΄ΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… ΡƒΠ³Π»ΠΎΠ², ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒ, Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒ ΠΈ Π΄Π²Π΅ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 0, 45, 90 ΠΈ 135 градусов). ПослС этого происходит ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ‚ΠΎΠ³ΠΎ, достигаСт Π»ΠΈ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π° Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π° локального максимума Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ.

НапримСр, для маски 3×3:

  • Β· ΠΏΡ€ΠΈ условии, Ρ‡Ρ‚ΠΎ ΡƒΠ³ΠΎΠ» направлСния Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π° Ρ€Π°Π²Π΅Π½ Π½ΡƒΠ»ΡŽ, Ρ‚ΠΎ Ρ‚ΠΎΡ‡ΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒΡΡ Π³Ρ€Π°Π½ΠΈΡ†Π΅ΠΉ Π² Ρ‚ΠΎΠΌ случаС, Ссли Π΅Ρ‘ ΠΈΠ½Ρ‚Π΅Π½ΡΠΈΠ²Π½ΠΎΡΡ‚ΡŒ большС Ρ‡Π΅ΠΌ Ρƒ Π²Ρ‹ΡˆΠ΅ΡΡ‚оящСй ΠΈ Π½ΠΈΠΆΠ΅ΡΡ‚оящСй Ρ‚ΠΎΡ‡ΠΊΠΈ;
  • Β· ΠΏΡ€ΠΈ условии, Ρ‡Ρ‚ΠΎ ΡƒΠ³ΠΎΠ» направлСния Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π° Ρ€Π°Π²Π΅Π½ 90, Ρ‚ΠΎ Π΄Π°Π½Π½Π°Ρ Ρ‚ΠΎΡ‡ΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒΡΡ Π³Ρ€Π°Π½ΠΈΡ†Π΅ΠΉ, Ссли Π΅Ρ‘ ΠΈΠ½Ρ‚Π΅Π½ΡΠΈΠ²Π½ΠΎΡΡ‚ΡŒ большС Ρ‡Π΅ΠΌ Ρƒ Π»Π΅Π²ΠΎΡΡ‚оящСй ΠΈ ΠΏΡ€Π°Π²ΠΎΡΡ‚оящСй Ρ‚ΠΎΡ‡ΠΊΠΈ;
  • Β· ΠΏΡ€ΠΈ условии, Ρ‡Ρ‚ΠΎ ΡƒΠ³ΠΎΠ» направлСния Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π° Ρ€Π°Π²Π΅Π½ 135 градусам, Ρ‚ΠΎ Π΄Π°Π½Π½Π°Ρ Ρ‚ΠΎΡ‡ΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒΡΡ Π³Ρ€Π°Π½ΠΈΡ†Π΅ΠΉ, Ссли Π΅Ρ‘ ΠΈΠ½Ρ‚Π΅Π½ΡΠΈΠ²Π½ΠΎΡΡ‚ΡŒ большС, Ρ‡Π΅ΠΌ Ρƒ Ρ‚ΠΎΡ‡Π΅ΠΊ, находящихся Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ Π»Π΅Π²ΠΎΠΌ ΠΈ Π½ΠΈΠΆΠ½Π΅ΠΌ ΠΏΡ€Π°Π²ΠΎΠΌ ΡƒΠ³Π»Ρƒ;
  • Β· ΠΏΡ€ΠΈ условии, Ρ‡Ρ‚ΠΎ ΡƒΠ³ΠΎΠ» направлСния Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π° Ρ€Π°Π²Π΅Π½ 45 градусам, Ρ‚ΠΎ Π΄Π°Π½Π½Π°Ρ Ρ‚ΠΎΡ‡ΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒΡΡ Π³Ρ€Π°Π½ΠΈΡ†Π΅ΠΉ, Ссли Π΅Ρ‘ ΠΈΠ½Ρ‚Π΅Π½ΡΠΈΠ²Π½ΠΎΡΡ‚ΡŒ большС, Ρ‡Π΅ΠΌ Ρƒ Ρ‚ΠΎΡ‡Π΅ΠΊ, находящихся Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΠΏΡ€Π°Π²ΠΎΠΌ ΠΈ Π½ΠΈΠΆΠ½Π΅ΠΌ Π»Π΅Π²ΠΎΠΌ ΡƒΠ³Π»Ρƒ.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, получаСтся Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ исходного изобраТСния. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΡƒΠ΄Π°Π»ΠΎΡΡŒ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ поиск ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΊΠ²Π°Ρ€Ρ‚ΠΈΡ€Ρ‹ ΠΈΠ· ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡ, Ρ‚Π°ΠΊΠΆΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π½Π΅Π³ΠΎ осущСствляСтся поиск Π΄Π²Π΅Ρ€Π½Ρ‹Ρ… ΠΈ ΠΎΠΊΠΎΠ½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΡ‘ΠΌΠΎΠ².

ΠœΠ΅Ρ‚ΠΎΠ΄ adaptiveThreshold.

Π”Π°Π½Π½Ρ‹ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ являСтся ΠΏΠΎΡ€ΠΎΠ³ΠΎΠ²Ρ‹ΠΌ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ интСнсивности пиксСля, ΠΎΠ½ Π»ΠΈΠ±ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Ρ‡Π΅Ρ€Π½Ρ‹ΠΌ, Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π±Π΅Π»Ρ‹ΠΌ. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, Ссли Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ пиксСля большС ΠΏΠΎΡ€ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ значСния, Π΅ΠΌΡƒ присваиваСтся ΠΎΠ΄Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ (ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π±Π΅Π»Ρ‹ΠΌ), ΠΈΠ½Π°Ρ‡Π΅ Π΅ΠΌΡƒ присваиваСтся Π΄Ρ€ΡƒΠ³ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ (ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‡Π΅Ρ€Π½Ρ‹ΠΌ). ИспользованиС статичСского для всСго изобраТСния ΠΏΠΎΡ€ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ значСния Π½Π΅ Π²ΡΠ΅Π³Π΄Π° Ρ…ΠΎΡ€ΠΎΡˆΠΎ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π² Ρ€Π°Π·Π½Ρ‹Ρ… частях изобраТСния часто разная ΠΎΡΠ²Π΅Ρ‰Π΅Π½Π½ΠΎΡΡ‚ΡŒ. Из-Π·Π° этого Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠΎΡ€ΠΎΠ³ΠΎΠ²Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π½Π΅ ΡΠ²Π»ΡΠ΅Ρ‚ся эффСктивной. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½ΠΎΠ΅ ΠΏΠΎΡ€ΠΎΠ³ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ adaptiveThreshold. ΠŸΡ€ΠΈ этом Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ вычисляСт ΠΏΠΎΡ€ΠΎΠ³ для Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… областСй изобраТСния, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ для ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ маски. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΠΎΡ€ΠΎΠ³ΠΈ для Ρ€Π°Π·Π½Ρ‹Ρ… областСй ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ изобраТСния, ΠΈ ΡΡ‚ΠΎ Π΄Π°Π΅Ρ‚ Π»ΡƒΡ‡ΡˆΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ для ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ освСщСниСм. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ‡Π΅Ρ€Π½ΠΎ-Π±Π΅Π»ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠ΅ (ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π²Π° Ρ†Π²Π΅Ρ‚Π° — Ρ‡Π΅Ρ€Π½Ρ‹ΠΉ ΠΈ Π±Π΅Π»Ρ‹ΠΉ) Π² ΡΠΎΠΎΡ‚вСтствии с Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΎΠΉ:

(4).

(4).

Π—Π΄Π΅ΡΡŒ dst (x, y) — Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ пиксСля Π² Ρ‚ΠΎΡ‡ΠΊΠ΅ (x, y) ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ изобраТСния, src (x, y) — Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ пиксСля Π² Ρ‚ΠΎΡ‡ΠΊΠ΅ (x, y) исходного изобраТСния, T (x, y) — ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ΅ ΠΏΠΎΡ€ΠΎΠ³ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… маски, ΠΏΡƒΡ‚Π΅ΠΌ расчСта срСднСго значСния интСнсивностСй пиксСлСй маски минус заданная константа. maxValue — Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ 255 — Π±Π΅Π»Ρ‹ΠΉ Ρ†Π²Π΅Ρ‚.

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ поиска стСн. Π’ΠΊΠ»Π°Π΄ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΈ Ρ‡Π΅Ρ€Π½ΠΎ-Π±Π΅Π»ΠΎΠ³ΠΎ изобраТСния ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²ΠΊΠΈ Π² Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠ΅, Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ распознаваниС стСн.

ΠœΠ΅Ρ‚ΠΎΠ΄ findContours.

ΠœΠ΅Ρ‚ΠΎΠ΄ findContours являСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ°ΠΌΡ‹Ρ… Π²Π°ΠΆΠ½Ρ‹Ρ… Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ OpenCV, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΊΠΎΠ½Ρ‚ΡƒΡ€Π½Ρ‹ΠΉ Π°Π½Π°Π»ΠΈΠ· — ΠΎΠ΄Π½ΠΈ ΠΈΠ· ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… способов описания, хранСния, распознавания ΠΈ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡ графичСских ΠΎΠ±Ρ€Π°Π·ΠΎΠ² ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². ΠšΠΎΠ½Ρ‚ΡƒΡ€ — это внСшниС очСртания (ΠΎΠ±Π²ΠΎΠ΄) ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π° / ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. ΠžΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ‚ΡƒΡ€ΠΎΠ² Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ограничСния, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ситуациях Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚ΡƒΡ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°:

  • Β· ΠΈΠ·-Π·Π° ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠΉ яркости с Ρ„ΠΎΠ½ΠΎΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‡Ρ‘Ρ‚ΠΊΠΎΠΉ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ выдСлСния ΠΊΠΎΠ½Ρ‚ΡƒΡ€Π°;
  • Β· ΠΏΠ΅Ρ€Π΅ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈΠ»ΠΈ ΠΈΡ… Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ½Ρ‚ΡƒΡ€ выдСляСтся Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΈ Π½Π΅ ΡΠΎΠΎΡ‚вСтствуСт Π³Ρ€Π°Π½ΠΈΡ†Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° findContours Π²Π½Π°Ρ‡Π°Π»Π΅ исходноС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½ΡƒΠΆΠ½ΠΎ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Canny, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹. По Π³Ρ€Π°Π½ΠΈΡ†Π°ΠΌ изобраТСния ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ поиск Π·Π°ΠΌΠΊΠ½ΡƒΡ‚Ρ‹Ρ… ΠΊΠΎΠ½Ρ‚ΡƒΡ€ΠΎΠ². ПослС этого, ΠΈΠ· Π³Ρ€Π°Π½ΠΈΡ† Π²Ρ‹Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΊΠΎΠ½Ρ‚ΡƒΡ€Ρ‹ ΠΈ ΠΊΠΎΠ΄ΠΈΡ€ΡƒΡŽΡ‚ся ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ†Π΅ΠΏΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π€Ρ€ΠΈΠΌΠ΅Π½Π°. Π¦Π΅ΠΏΠ½Ρ‹Π΅ ΠΊΠΎΠ΄Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ для прСдставлСния Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ Π² Π²ΠΈΠ΄Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΎΡ‚Ρ€Π΅Π·ΠΊΠΎΠ² прямых Π»ΠΈΠ½ΠΈΠΉ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹ ΠΈ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡ. Π’ ΠΎΡΠ½ΠΎΠ²Π΅ этого прСдставлСния Π»Π΅ΠΆΠΈΡ‚ 4- ΠΈΠ»ΠΈ 8 — связная Ρ€Π΅ΡˆΡ‘Ρ‚ΠΊΠ°. Π”Π»ΠΈΠ½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΡ‚Ρ€Π΅Π·ΠΊΠ° опрСдСляСтся Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ Ρ€Π΅ΡˆΡ‘Ρ‚ΠΊΠΈ, Π° Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡ Π·Π°Π΄Π°ΡŽΡ‚ΡΡ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ.

Благодаря этому ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ Π² Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΠΎΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π±Ρ‹Π» Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ распознавания стСн. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π½Π΅Π³ΠΎ стало Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, анализируя Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ½Ρ‚ΡƒΡ€ΠΎΠ² ΠΈ ΠΈΡ… ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ, являСтся Π»ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΊΠΎΠ½Ρ‚ΡƒΡ€ стСной ΠΈΠ»ΠΈ Π½Π΅Ρ‚.

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ