ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΠΎΡ€ΠΎΠ³ΠΎΠ²ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ изобраТСния

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

К ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ относятся Π·Π°Π΄Π°Ρ‡ΠΈ, связанныС с ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… статичСских ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π΅Ρ‚ΡƒΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΉ, Π°Π½Π°Π»ΠΈΠ· рСнтгСновских снимков, распознаваниС тСкста. Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡, относящихся ΠΊ ΡΡ‚ΠΎΠΉ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ, слуТат извСстныС ΠΈ ΡˆΠΈΡ€ΠΎΠΊΠΎ распространСнныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ пространствСнной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠ΅ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½ΡƒΡŽ Π»ΠΈΠ½Π΅ΠΉΠ½ΡƒΡŽ ΠΈ Π½Π΅Π»ΠΈΠ½Π΅ΠΉΠ½ΡƒΡŽ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡŽ, гистограммныС… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΠΎΡ€ΠΎΠ³ΠΎΠ²ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ изобраТСния (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Π—Π°Π΄Π°Π½ΠΈΠ΅ Π½Π° ΠΊΡƒΡ€ΡΠΎΠ²ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ

1. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ

1.1 ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΏΠΎΡ€ΠΎΠ³ΠΎΠ²ΠΎΠΉ сСгмСнтации

1.2 Π‘Π»ΠΎΠΊ схСма Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

2. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° интСрфСйса ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

2.1 Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ изобраТСния с Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΌ ΠΏΠΎΡ€ΠΎΠ³ΠΎΠΌ

2.2 Поиск ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π½Π° Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Π—Π°Π΄Π°Π½ΠΈΠ΅ Π½Π° ΠΊΡƒΡ€ΡΠΎΠ²ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΏΠΎΡ€ΠΎΠ³ΠΎΠ²ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ изобраТСния.

Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒΡΡ ΠΈΠ· BMP Ρ„Π°ΠΉΠ»Π° ΠΈ ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΡ‚ся Π½Π° ΠΊΠ°Π½Π²Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ПослС Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ произвСсти Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡŽ с Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΌΠΈ ΠΏΠΎΡ€ΠΎΠ³ΠΎΠΌ (Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΈΠ»ΠΈ автоматичСски) ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅.

Π’Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ Ρ„Π°ΠΉΠ» Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ: Π΄Π°Ρ‚Ρƒ ΠΈ Π²Ρ€Π΅ΠΌΡ запуска ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, имя Ρ„Π°ΠΉΠ»Π°, содСрТащСго ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Π΅Π³ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π€ΠΎΡ€ΠΌΠ°Ρ‚ Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° — тСкстовый. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€Π°: ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Π»ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π² Ρ„Π°ΠΉΠ» ΠΈΠ»ΠΈ Π½Π΅Ρ‚. ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ задания ΠΈΠΌΠ΅Π½ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° опрСдСляСтся самим ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ.

Цифровая ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π½Π° ΡΠ΅Π³ΠΎΠ΄Π½ΡΡˆΠ½ΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ быстро Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‰Π°ΡΡΡ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Π½Π°ΡƒΠΊΠΈ ΠΈ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ.

Π—Π°Π΄Π°Ρ‡ΠΈ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π° Π΄Π²Π΅ основныС ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ:

1. К ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ относятся Π·Π°Π΄Π°Ρ‡ΠΈ, связанныС с ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… статичСских ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π΅Ρ‚ΡƒΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΉ, Π°Π½Π°Π»ΠΈΠ· рСнтгСновских снимков, распознаваниС тСкста. Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡, относящихся ΠΊ ΡΡ‚ΠΎΠΉ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ, слуТат извСстныС ΠΈ ΡˆΠΈΡ€ΠΎΠΊΠΎ распространСнныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ пространствСнной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠ΅ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½ΡƒΡŽ Π»ΠΈΠ½Π΅ΠΉΠ½ΡƒΡŽ ΠΈ Π½Π΅Π»ΠΈΠ½Π΅ΠΉΠ½ΡƒΡŽ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡŽ, гистограммныС прСобразования, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ статистичСской сСгмСнтации, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ распознавания Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹Ρ… ΠΎΠ±Ρ€Π°Π·ΠΎΠ².

2. Π—Π°Π΄Π°Ρ‡ΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… исходным ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠΌ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ слуТат ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. Π‘Ρ€Π΅Π΄ΠΈ Π·Π°Π΄Π°Ρ‡, относящихся ΠΊ ΡΡ‚ΠΎΠΉ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ, ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ сТатиС ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ Π²ΠΈΠ΄Π΅ΠΎΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ двиТущихся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², автоматичСскоС ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ€ΠΎΠ±ΠΎΡ‚Π°ΠΌΠΈ.

ЦСлью Π΄Π°Π½Π½ΠΎΠΉ курсовой Ρ€Π°Π±ΠΎΡ‚Ρ‹ являСтся созданиС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, которая ΠΌΠΎΠ³Π»Π° Π±Ρ‹ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² Π²ΠΈΠ΄Π΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΊ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ ΠΏΠΎΡ€ΠΎΠ³ΠΎΠ²ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ.

1. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ

1.1 ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΏΠΎΡ€ΠΎΠ³ΠΎΠ²ΠΎΠΉ сСгмСнтации

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

Под сСгмСнтациСй ΠΏΠΎΠ½ΠΈΠΌΠ°ΡŽΡ‚ Ρ€Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ изобраТСния Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ΄Π½ΠΎΡ€ΠΎΠ΄Π½Ρ‹Π΅ области ΠΈΠ»ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. Часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΏΡ€ΠΈ этом ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΠΎΡ€ΠΎΠ³ΠΎΠ²ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ основываСтся Π½Π° Π°Π½Π°Π»ΠΈΠ·Π° гистограмм яркостСй. ΠŸΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΠ΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ содСрТит извСстноС число ΠΎΠ΄Π½ΠΎΡ€ΠΎΠ΄Π½Ρ‹Ρ… ΠΏΠΎ ΡΡ€ΠΊΠΎΡΡ‚ΠΈ классов Ρ‚ΠΎΡ‡Π΅ΠΊ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΡ… классов, распрСдСлСниС вСроятностСй яркостСй ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡƒΠ½ΠΈΠΌΠΎΠ΄Π°Π»ΡŒΠ½Ρ‹. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, считаСтся, Ρ‡Ρ‚ΠΎ Π³Ρ€Π°Π½ΠΈΡ‡Π½Ρ‹Π΅ участки ΠΌΠ΅ΠΆΠ΄Ρƒ Π·Π°ΠΌΠΊΠ½ΡƒΡ‚Ρ‹ΠΌΠΈ областями Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΠΏΠ»ΠΎΡ‰Π°Π΄ΡŒ изобраТСния. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π½Π° Π³ΠΈΡΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΈΠΌ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅ΠΆΠΌΠΎΠ΄ΠΎΠ²Ρ‹Π΅ Π²ΠΏΠ°Π΄ΠΈΠ½Ρ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΏΠΎΡ€ΠΎΠ³ΠΈ сСгмСнтации.

К ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡŽ, изобраТСния Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… сцСн ΠΏΠ»ΠΎΡ…ΠΎ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‚ Ρ‚Π°ΠΊΠΈΠΌ прСдполоТСниям. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ областями Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ Ρ€Π°Π·ΠΌΡ‹Ρ‚Ρ‹. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ модальная структура гистограммы Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½Π° нСдостаточно, Π° ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ΠΌΠΎΠ΄ оказываСтся сравним с ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ ΡˆΡƒΠΌΠ° Π½Π° Π³ΠΈΡΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, часто, ΠΊΠΎΠ³Π΄Π° гистограмма ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΌΠΎΠ΄Ρ‹, оказываСтся Ρ‚Ρ€ΡƒΠ΄Π½Ρ‹ΠΌ Ρ‚ΠΎΡ‡Π½ΠΎ Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π½ΠΎ Π²ΠΏΠ°Π΄ΠΈΠ½ ΠΈΠ·-Π·Π° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΡˆΠΈΡ€ΠΎΠΊΠΈΠ΅ ΠΈ ΠΏΠ»ΠΎΡΠΊΠΈΠ΅.

БущСствуСт мноТСство Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² сСгмСнтаций ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ Π½Π° ΡΠ»ΡƒΡ‡Π°ΠΉ отдСлСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΎΡ‚ Ρ„ΠΎΠ½Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… Π² Ρ‡Π°ΡΡ‚ности, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ выдСлСния Π³Ρ€Π°Π½ΠΈΡ† ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ выдСлСния ΠΎΠ΄Π½ΠΎΡ€ΠΎΠ΄Π½Ρ‹Ρ… ΠΏΠΎ Ρ‚СкстурС участков изобраТСния ΠΈ Ρ‚. ΠΏ.

1.2 Π‘Π»ΠΎΠΊ схСма Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

ΠžΠ±Ρ‰Π°Ρ Π±Π»ΠΎΠΊ схСма Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ прСдставлСна Π½Π° Ρ€ΠΈΡ. 1, которая состоит ΠΈΠ· ΡΠ΅ΠΌΠΈ Π±Π»ΠΎΠΊΠΎΠ². Π‘ΠΎΠ»Π΅Π΅ подробная Π±Π»ΠΎΠΊ схСма Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π±Π»ΠΎΠΊΠ° 2 ΠΈ 3 прСдставлСна Π½Π° Ρ€ΠΈΡ. 2 ΠΈ Ρ€ΠΈΡ. 3(Π°, Π±) соотвСтствСнно. Π’ Π±Π»ΠΎΠΊΠ΅ 5 происходит поиск ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π½Π° Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ, Π² ΠΎΠ±Π»Π°ΡΡ‚ΠΈ поиска, Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ.

На Ρ€ΠΈΡ. 2 прСдставлСна Π±Π»ΠΎΠΊ схСма Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°. Π’ Π½Π΅ΠΌ происходит ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΈΠ· ΡΡ€ΠΊΠΎΡΡ‚ΠΈ пиксСлСй, Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ изобраТСния.

На Ρ€ΠΈΡ. 3(Π°, Π±) прСдставлСна Π±Π»ΠΎΠΊ схСма Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅Π³ΠΎ Π±Π»ΠΎΠΊΠ°. Π’ Π½Π΅ΠΌ происходит Π²Ρ‹Π±ΠΎΡ€ ΠΏΠΎΡ€ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ значСния ΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ изобраТСния с Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΌ ΠΏΠΎΡ€ΠΎΠ³ΠΎΠΌ. ПослС Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ происходит ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΈΠ· ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ яркостСй.

Π’ ΡΠ»ΡƒΡ‡Π°Π΅ автоматичСского ΠΏΠΎΠ΄Π±ΠΎΡ€Π° ΠΏΠΎΡ€ΠΎΠ³Π° Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ (с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ Π΅Π³ΠΎ ΠΈΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ Π² ΡΠ»ΡƒΡ‡Π°Π΅ получСния Π½Π΅ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°) Π±Π»ΠΎΠΊ схСма Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ (рис.3(Π±)):

2. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° интСрфСйса ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° состоит ΠΈΠ· Ρ‚Ρ€Π΅Ρ… Ρ„ΠΎΡ€ΠΌ (Form):

Form1 — Рабочая срСда (рис. 5)

Form2 -Π’ΠΈΡ‚ΡƒΠ»ΡŒΠ½Ρ‹ΠΉ лист (рис. 4)

Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ задСйствовано 45 ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€.

Рис.4

ПослС запуска ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ появляСтся пСрвая Ρ„ΠΎΡ€ΠΌΠ° (рис. 4), которая являСтся заставкой этой Ρ€Π°Π±ΠΎΡ‚Ρ‹, ΠΈ Π½Π΅ΡΠ΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅ ΠΈ ΠΎ Ρ‚Π΅ΠΌΠ΅ курсовой Ρ€Π°Π±ΠΎΡ‚Ρ‹. Π§Π΅Ρ€Π΅Π· 5 сСкунд появляСтся активная ΠΊΠ½ΠΎΠΏΠΊΠ° Π²Π½ΠΈΠ·Ρƒ Ρ„ΠΎΡ€ΠΌΡ‹, с Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ «ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅», ΠΏΠΎ Π½Π°ΠΆΠ°Ρ‚ΠΈΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ появится рабочая срСда ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (рис. 5).

Рис.5

Кнопка «ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅» ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ изобраТСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°.

АналогичноС дСйствиС ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π³Π»Π°Π²Π½ΠΎΠ΅ мСню ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, «Ρ„Π°ΠΉΠ» — ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅»

2.1 Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ изобраТСния с Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΌ ΠΏΠΎΡ€ΠΎΠ³ΠΎΠΌ

ΠŸΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ «ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅» ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ прСдоставляСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€Π° BMP Ρ„Π°ΠΉΠ»Π°, содСрТащСго изобраТСния (рис. 6).

Рис.6

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

ΠŸΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ «ΠΏΠΎΡ€ΠΎΠ³ΠΎΠ²Π°Ρ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°» ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° создаст Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, исходного изобраТСния с Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΌ ΠΏΠΎΡ€ΠΎΠ³ΠΎΠΌ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π° ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ «Π°Π²Ρ‚оматичСски ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΏΠΎΡ€ΠΎΠ³», ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ прСдоставится Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΊΠ°Ρ‚ΡŒΡΡ. ПослС выдСлСния ΠΈ ΠΏΠΎ Π½Π°ΠΆΠ°Ρ‚ΠΈΡŽ ΠΊΠ½ΠΎΠΏΠΊΠΈ «ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π°Π²Ρ‚ΠΎ ΠΏΠΎΡ€ΠΎΠ³ΠΎΠΌ», ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° создаст ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ с Π°Π²Ρ‚оматичСски ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π°Π½Π½Ρ‹ΠΌ ΠΏΠΎΡ€ΠΎΠ³ΠΎΠΌ (рис. 7).

Рис.7

2.2 Поиск ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π½Π° Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ

ПослС Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΌ ΠΏΠΎΡ€ΠΎΠ³ΠΎΠΌ (автоматичСски ΠΈΠ»ΠΈ Π²ΡƒΡ€Ρ‡Π½ΡƒΡŽ) появляСтся новая панСль, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ располоТСны ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для задания ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈ ΠΎΠ±Π»Π°ΡΡ‚ΠΈ поиска этого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π½Π° Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ.

ΠŸΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ «Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ» ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰ΡƒΡŽ Π΅Π³ΠΎ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ изобраТСния (рис. 8).

Рис.8

ПослС Π²Π²ΠΎΠ΄Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΡ области поиска ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ «Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΡ‚ΡŒ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅» ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ смоТСт Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ «ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚». ПослС Ρ‡Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π°ΠΉΠ΄Π΅Ρ‚ всС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ области, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° (рис. 9).

Рис.9

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½Ρ‹ Π² ΠΌΠ½ΠΎΠ³ΠΎΡΡ‚Ρ€ΠΎΡ‡Π½ΠΎΠ΅ ΠΏΠΎΠ»Π΅. ПослС этого ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ станСт доступным ΠΏΡƒΠ½ΠΊΡ‚ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ мСню «Ρ„Π°ΠΉΠ» — ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹», Π² Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ имя Ρ„Π°ΠΉΠ»Π° ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ для Π½Π΅Π³ΠΎ.

Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½Π½Ρ‹ΠΉ тСкстовый Ρ„Π°ΠΉΠ» Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²ΠΈΠ΄ (рис. 10).

Рис.10

Π’ ΠΌΠ΅Π½ΡŽ «Π²ΠΈΠ΄» ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ†Π²Π΅Ρ‚ Ρ„ΠΎΠ½Π° ΠΊΠ°Π½Π²Ρ‹ ΠΈ Π΄Π²ΡƒΡ… Π½ΠΈΠΆΠ½ΠΈΡ… ΠΏΠ°Π½Π΅Π»Π΅ΠΉ.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ выполнСния Π΄Π°Π½Π½ΠΎΠΉ курсовой Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±Ρ‹Π»Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰Π°Ρ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΌ ΠΏΠΎΡ€ΠΎΠ³ΠΎΠΌ (автоматичСски ΠΈΠ»ΠΈ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ) ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π°Ρ мСстополоТСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π½Π° Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ. Π‘Ρ‹Π»ΠΎ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΎ исслСдованиС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ срСды Borland Turbo Delphi, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для создания ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ Ρ€ΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

Бозданная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ выдСлСния области поиска ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π½Π° Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ, с ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ Π΅Π΅ Π°Π½Π°Π»ΠΈΠ·ΠΎΠΌ. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ итоговая информация сохраняСтся Π² Ρ‚Скстовый Ρ„Π°ΠΉΠ», имя ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ сам ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ.

ΠΏΠΎΡ€ΠΎΠ³ΠΎΠ²Ρ‹ΠΉ сСгмСнтация ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅

1) БСляСв А. А. «ΠšΠΎΠ½ΡΠΏΠ΅ΠΊΡ‚ Π»Π΅ΠΊΡ†ΠΈΠΉ ΠΏΠΎ ΠŸΠΈΠžΠ» ;

2) БСляСв А. А. «ΠžΠ±Π·ΠΎΡ€ ΠΈ Ρ‡Π°ΡΡ‚ΡŒ Π΄ΠΈΠΏΠ»ΠΎΠΌΠ°» ;

3) http://www.DelphiSources.ru/;

4) http://www.programmersforum.ru/

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ComCtrls, jpeg, ExtCtrls, MPlayer, StdCtrls;

type

TForm1 = class (TForm)

Image1: TImage;

MediaPlayer1: TMediaPlayer;

Timer1: TTimer;

Label1: TLabel;

procedure FormActivate (Sender: TObject);

procedure Timer1Timer (Sender: TObject);

procedure Label1MouseMove (Sender: TObject; Shift: TShiftState; X,

Y: Integer);

procedure Label1Click (Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}

var

sec: integer; // сСкунды

procedure TForm1. FormActivate (Sender: TObject);

begin

MediaPlayer1.Play;

Form1.Timer1.Enabled:=True

end;

procedure TForm1. Timer1Timer (Sender: TObject);

begin

sec:=sec+1;

If sec=5 then label1. show;

if (sec mod 2) = 1

then begin label1.Font.color:=clGreen; label1. Color:=ClYellow; end

else begin label1.Font.color:=clYellow;label1.Color:=clgreen; end;

end;

procedure TForm1. Label1MouseMove (Sender: TObject; Shift: TShiftState; X,

Y: Integer);

begin

label1.Cursor:=crHandPoint

end;

procedure TForm1. Label1Click (Sender: TObject);

begin

Form2.show;

Form1.Hide;

Mediaplayer1.Stop;

Timer1.Enabled:=False;

end;

end.

unit Unit2;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Menus, StdCtrls, ExtDlgs, math, ExtCtrls, shellapi;

type

TForm2 = class (TForm)

MainMenu1: TMainMenu;

N1: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

N6: TMenuItem;

N7: TMenuItem;

N8: TMenuItem;

N9: TMenuItem;

N10: TMenuItem;

SaveDialog1: TSaveDialog;

Label2: TLabel;

Label3: TLabel;

Timer1: TTimer;

N11: TMenuItem;

N12: TMenuItem;

N21: TMenuItem;

N31: TMenuItem;

N41: TMenuItem;

Panel1: TPanel;

Button1: TButton;

Button2: TButton;

Button3: TButton;

Label6: TLabel;

Label5: TLabel;

N13: TMenuItem;

N14: TMenuItem;

N15: TMenuItem;

ColorDialog1: TColorDialog;

Panel2: TPanel;

Button4: TButton;

GroupBox1: TGroupBox;

Edit1: TEdit;

Label7: TLabel;

Label8: TLabel;

Edit3: TEdit;

Label9: TLabel;

Edit2: TEdit;

Edit4: TEdit;

Label10: TLabel;

GroupBox2: TGroupBox;

Label11: TLabel;

Label13: TLabel;

Edit5: TEdit;

Edit7: TEdit;

Button5: TButton;

Memo1: TMemo;

Button6: TButton;

N2: TMenuItem;

Edit6: TEdit;

Edit8: TEdit;

Label20: TLabel;

Label21: TLabel;

GroupBox3: TGroupBox;

Label1: TLabel;

Label4: TLabel;

ScrollBar1: TScrollBar;

Label12: TLabel;

Label14: TLabel;

Label15: TLabel;

Label16: TLabel;

Label17: TLabel;

Label18: TLabel;

Label19: TLabel;

Label22: TLabel;

Label23: TLabel;

Label24: TLabel;

Label25: TLabel;

Label26: TLabel;

Label27: TLabel;

Label28: TLabel;

Label29: TLabel;

Label30: TLabel;

Label31: TLabel;

Label32: TLabel;

OpenDialog1: TOpenDialog;

procedure FormClose (Sender: TObject; var Action: TCloseAction);

procedure N6Click (Sender: TObject);

procedure N9Click (Sender: TObject);

procedure Button2Click (Sender: TObject);

procedure Button3Click (Sender: TObject);

procedure N8Click (Sender: TObject);

procedure ScrollBar1Change (Sender: TObject);

procedure FormCreate (Sender: TObject);

procedure Timer1Timer (Sender: TObject);

procedure N12Click (Sender: TObject);

procedure N21Click (Sender: TObject);

procedure N31Click (Sender: TObject);

procedure N41Click (Sender: TObject);

procedure N14Click (Sender: TObject);

procedure N15Click (Sender: TObject);

procedure Edit1Change (Sender: TObject);

procedure Edit3Change (Sender: TObject);

procedure Edit2Change (Sender: TObject);

procedure Edit4Change (Sender: TObject);

procedure Button4Click (Sender: TObject);

procedure FormMouseDown (Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure FormMouseMove (Sender: TObject; Shift: TShiftState; X,

Y: Integer);

procedure FormMouseUp (Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure Button6Click (Sender: TObject);

procedure N2Click (Sender: TObject);

procedure Button5Click (Sender: TObject);

procedure Edit1KeyPress (Sender: TObject; var Key: Char);

procedure Edit2KeyPress (Sender: TObject; var Key: Char);

procedure Edit3KeyPress (Sender: TObject; var Key: Char);

procedure Edit4KeyPress (Sender: TObject; var Key: Char);

procedure Edit5KeyPress (Sender: TObject; var Key: Char);

procedure Edit7KeyPress (Sender: TObject; var Key: Char);

procedure N7Click (Sender: TObject);

procedure Edit5Change (Sender: TObject);

procedure Edit7Change (Sender: TObject);

procedure Edit6Change (Sender: TObject);

procedure Edit8Change (Sender: TObject);

procedure N5Click (Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var//newmatr, matr-ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ сод исх ΠΈ Π±ΠΈΠ½ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆ;ykon, ynach, xnach, xkon-ΠΊΠΎΠΎΡ€Π΄ ΠΎΠ±Π» поиск

Form2: TForm2;

newmatr, matr: array[1.1000,1.1000] of byte;

ykon, ynach, xnach, xkon: integer;

x, y, nx, ny, k, i:integer;

a, form, objekt: byte;

c:TColor;

startwork:string;

new, move: boolean;

implementation

uses Unit1, Unit3;

{$R *.dfm}

procedure pryamoug (xnach, ynach, xkon, ykon, nx: integer);//ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° рисования ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°

begin

form2.canvas.Pen.Width:=1;

form2.Canvas.Pen.Style:=psdot;

Form2.Canvas.Brush.style:=bsclear;

Form2.Canvas.Rectangle (xnach+nx+41,ynach+21,xkon+41+nx, ykon+21);

end;

procedure TForm2. FormClose (Sender: TObject; var Action: TCloseAction);//НаТатиС Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ закрытия ΠΎΠΊΠ½Π°

begin

if N9. Enabled=true then k:=messagedlg ('Π’Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹?', mtwarning, [mbYes, mbNo], 0);

if k=6 then N9. Click;

Form1.Close;

end;

procedure TForm2. N6Click (Sender: TObject);//Π’Ρ‹Π·ΠΎΠ² Ρ„ΠΎΡ€ΠΌΡ‹ «ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅»

begin

Form3.showmodal

end;

procedure TForm2. N9Click (Sender: TObject);//Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

var

Fail: textfile;

begin

savedialog1.Filter:='*.txt | *.txt';

if savedialog1. execute then

begin

n9.Enabled:=false;

savedialog1.FileName:= changeFileExt (savedialog1.FileName,'.txt');

assignFile (fail, savedialog1. FileName);

rewrite (fail);

writeln (fail,'ВрСмя ΠΈ Π΄Π°Ρ‚Π° Π½Π°Ρ‡Π°Π»Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹: '+ startwork);

writeln (fail,'');

writeln (fail,'Имя Ρ„Π°ΠΉΠ»Π°: '+opendialog1.FileName);

writeln (fail,'Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅: '+inttostr (nx)+'x'+inttostr (ny));

writeln (fail,'');

writeln (fail,'Π’Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΡ€ΠΎΠ³ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ изобраТСния :'+inttostr (scrollbar1.position));

writeln (fail,'');

writeln (fail,'ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠ³Π°Π΅ΠΌΡ‹Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°: ');

writeln (fail,'minШирина= '+edit5.text + ' maxШирина= '+edit6.text);

writeln (fail,'minВысота= '+edit7.text + ' maxВысота= '+edit8.text);

writeln (fail,'');

writeln (fail, memo1. text);

writeln (fail, 'ВрСмя обнаруТСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°: '+ Formatdatetime ('c', now));

closefile (fail);

showmessage ('Π€Π°ΠΉΠ» '+savedialog1.FileName +' ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ сохранСн');

end;

end;

procedure TForm2. Button2Click (Sender: TObject);//Π€ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ изобраТСния с Π²Ρ‹ΡŒΡ€Π°Π½Π½Ρ‹ΠΌ ΠΏΠΎΡ€ΠΎΠ³ΠΎΠΌ

begin

for y:=1 to ny do

for x:=nx downto 1 do

begin

a:=matr[x, y];

if a

newmatr[x, y]: =a;

c:=$ 10 101*a;

form2.Canvas.Pixels[x+40+nx, y+20]:=c;

end;

label3.Left:=40+nx;

label3.Show;

button3.Show;

button5.Enabled:=false;

new:=true;

end;

procedure TForm2. Button3Click (Sender: TObject);//ΠžΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Π²Ρ‚ΠΎΡ€ΡƒΡŽ панСль

begin

Panel2.Show;

end;

procedure TForm2. N8Click (Sender: TObject);//Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° изобраТСния Π½Π° ΠΊΠ°Π½Π²Ρƒ

var

f:file of byte;

mas:array[18.25] of byte;

begin

N7.Click ;

opendialog1.Filter:='*.bmp | *.bmp';

if opendialog1. Execute then

begin

assignfile (f, opendialog1. FileName);

reset (f);

for i:=18 to 21 do

begin

seek (f, i);

read (f, a);

mas[i]: =a;

seek (f, i+4);

read (f, a);

mas[i+4]:=a;

end;

nx:=mas[18]+mas[19]*256+mas[20]*256+mas[21]*256;

ny:=mas[22]+mas[23]*256+mas[24]*256+mas[25]*256;

k:=filesize (f);

for y:=1 to ny do

for x:=nx downto 1 do

begin

seek (f, k-1);

read (f, a);

matr[x, y]: =a;

c:=$ 10 101*a;

form2.Canvas.Pixels[x+20,y+20]:=c;

k:=k-1;

end;

label2.Left:=20;

label2.Show;

label1.Show;

label4.Show;

button2.Show;

scrollbar1.Show;

closefile (f);

groupbox3.show;

end;

end;

procedure TForm2. ScrollBar1Change (Sender: TObject);//ИзмСнСниС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ scrollBar

begin

label1.Caption:=inttostr (scrollbar1.position) ;

end;

procedure TForm2. FormCreate (Sender: TObject);

begin

form2.Height:=700;

form2.Width:=1000;

form:=1;

label12.color:=$ 10 101*0;

label14.color:=$ 10 101*16;

label15.color:=$ 10 101*32;

label16.color:=$ 10 101*48;

label17.color:=$ 10 101*64;

label18.color:=$ 10 101*80;

label19.color:=$ 10 101*96;

label22.color:=$ 10 101*112;

label23.color:=$ 10 101*128;

label24.color:=$ 10 101*144;

label25.color:=$ 10 101*160;

label26.color:=$ 10 101*176;

label27.color:=$ 10 101*192;

label28.color:=$ 10 101*208;

label29.color:=$ 10 101*224;

label30.color:=$ 10 101*240;

label31.color:=$ 10 101*255;

startwork:=FormatDatetime ('c', now);

end;

procedure TForm2. Timer1Timer (Sender: TObject);//ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°

begin

case form of

1:label5.Caption:=FormatDatetime ('c ', now);

2:label5.Caption:=FormatDatetime ('m, tt ', now);

3:label5.Caption:=FormatDatetime ('dddd, t ', now);

4:label5.Caption:=FormatDatetime ('ddddd, t', now);

end;

if new=false then

begin

form2.canvas.Pen.Color:=clgreen;

pryamoug (xnach, ynach, xkon, ykon, nx);

end;

end;

procedure TForm2. N12Click (Sender: TObject);//Π²Ρ‹Π±ΠΎΡ€ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° отобраТСния часов

begin

form:=1;

end;

procedure TForm2. N21Click (Sender: TObject);//Π²Ρ‹Π±ΠΎΡ€ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° отобраТСния часов

begin

form:=2

end;

procedure TForm2. N31Click (Sender: TObject);//Π²Ρ‹Π±ΠΎΡ€ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° отобраТСния часов

begin

form:=3;

end;

procedure TForm2. N41Click (Sender: TObject);//Π²Ρ‹Π±ΠΎΡ€ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° отобраТСния часов

begin

form:=4;

end;

procedure TForm2. N14Click (Sender: TObject);//Π²Ρ‹Π±ΠΎΡ€ Ρ†Π²Π΅Ρ‚ΠΎΠ²ΠΎΠΉ схСмы Ρ„ΠΎΡ€ΠΌΡ‹

begin

if colordialog1. Execute then

Form2.Color:=colordialog1.Color;

end;

procedure TForm2. N15Click (Sender: TObject);//Π²Ρ‹Π±ΠΎΡ€ Ρ†Π²Π΅Ρ‚ΠΎΠ²ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹ ΠΏΠ°Π½Π΅Π»ΠΈ

begin

if colordialog1. Execute then

Form2.Panel1.Color:=colordialog1.Color;

Form2.Panel2.Color:=colordialog1.Color;

end;

procedure TForm2. Edit1Change (Sender: TObject);//ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° измСнСния ΠΏΠΎΠ»Π΅ΠΉ edit Π² ΠžΠ±Π»Π°ΡΡ‚ΠΈ поиска

begin

new:=false;

form2.canvas.Pen.Color:=clwhite;

pryamoug (xnach, ynach, xkon, ykon, nx);

if strtoint (edit1.text)<0 then edit1. text:='0';

if strtoint (edit1.text)>nx then edit1. Text:=inttostr (nx);

xnach:=strtoint (edit1.Text);

button6.Enabled:=true;

end;

procedure TForm2. Edit3Change (Sender: TObject);//ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° измСнСния ΠΏΠΎΠ»Π΅ΠΉ edit Π² ΠžΠ±Π»Π°ΡΡ‚ΠΈ поиска

begin

new:=false;

form2.canvas.Pen.Color:=clwhite;

pryamoug (xnach, ynach, xkon, ykon, nx);

if strtoint (edit3.text)<0 then edit3. text:='0';

if strtoint (edit3.text)>nx then edit3. Text:=inttostr (nx);

xkon:=strtoint (edit3.Text);

button6.Enabled:=true;

end;

procedure TForm2. Edit2Change (Sender: TObject);//ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° измСнСния ΠΏΠΎΠ»Π΅ΠΉ edit Π² ΠžΠ±Π»Π°ΡΡ‚ΠΈ поиска

begin

new:=false;

form2.canvas.Pen.Color:=clwhite;

pryamoug (xnach, ynach, xkon, ykon, nx);

if strtoint (edit2.text)<0 then edit2. text:='0';

if strtoint (edit2.text)>ny then edit2. Text:=inttostr (ny);

ynach:=strtoint (edit2.Text);

button6.Enabled:=true;

end;

procedure TForm2. Edit4Change (Sender: TObject);//ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° измСнСния ΠΏΠΎΠ»Π΅ΠΉ edit Π² ΠžΠ±Π»Π°ΡΡ‚ΠΈ поиска

begin

new:=false;

form2.canvas.Pen.Color:=clwhite;

pryamoug (xnach, ynach, xkon, ykon, nx);

if strtoint (edit4.text)<0 then edit4. text:='0';

if strtoint (edit4.text)>ny then edit4. Text:=inttostr (ny);

ykon:=strtoint (edit4.Text);

button6.Enabled:=true;

end;

procedure TForm2. Button4Click (Sender: TObject);//ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° выдСлСния области

begin

new:=false;

form2.Cursor:=crCross;

Button6.Enabled:=true;

end;

procedure TForm2. FormMouseDown (Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);//Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ Π½Π° ΠΊΠ»Π°Π²ΠΈΡˆΠΈ ΠΌΡ‹ΡˆΠΈ ΠΏΡ€ΠΈ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅

begin

if form2. Cursor=crcross then

begin

move:=true;

x:=x-nx-41;y:=y-21;

edit1.text:=inttostr (X);

edit2.text:=inttostr (Y);

end;

end;

procedure TForm2. FormMouseMove (Sender: TObject; Shift: TShiftState; X,

Y: Integer);//ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Ρ‰Π΅Π½ΠΈΠ΅ курсора ΠΌΡ‹ΡˆΠΈ Π²ΠΎ Π²Ρ€Π΅ΠΌΡ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ выдСлСния

begin

if move=true then

begin

x:=x-nx-41;y:=y-21;

edit3.Text:=inttostr (x);

edit4.Text:=inttostr (y);

end;

end;

procedure TForm2. FormMouseUp (Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);//отпусканиС клавиши ΠΌΡ‹ΡˆΠΈ

begin

if form2. Cursor=crcross then

begin

move:=false;

x:=x-nx-41;y:=y-21;

edit3.Text:=inttostr (x);

edit4.Text:=inttostr (y);

end;

end;

procedure TForm2. Button6Click (Sender: TObject);//ΠšΠΎΠ½Π΅Ρ† выдСлСния области

var b: string;

begin

for y:=1 to ny do

for x:=nx downto 1 do

begin

form2.Cursor:=crDefault;

a:=newmatr[x, y];

c:=$ 10 101*a;

form2.Canvas.Pixels[x+40+nx, y+20]:=c;

end;

form2.Canvas.Pen.Color:=clgreen;

pryamoug (xnach, ynach, xkon, ykon, nx);

Button6.Enabled:=false;

Button5.Enabled:=true;

if strtoint (edit1.text)>strtoint (edit3.text) then begin b:=edit1.text; edit1. Text:=edit3.Text; edit3. Text:=b;end;

if strtoint (edit2.text)>strtoint (edit4.text) then begin b:=edit2.text; edit2. Text:=edit4.Text; edit4. Text:=b;end;

button6.Enabled:=False;

end;

procedure TForm2. N2Click (Sender: TObject);//Π—Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

begin

Form1.close;

end;

procedure TForm2. Button5Click (Sender: TObject);//ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° поиска ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°

var

summ2,summ, ykvkon, x, xkvnach, yKVnach, xKVkon, r, b:integer;

xkv:array [0.1000] of byte;

newmatrOb:array [0.500,0.500] of byte;

est, Yest, yest1: boolean;

begin

if (strtoint (edit6.text)=0) or (strtoint (edit8.text)=0) then

begin

messagedlg ('Π Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½Ρ‹, поТалуйста ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ ΠΈΡ…', mtInformation, [mbOk], 0);

exit

end;

if (strtoint (edit6.text)< strtoint (edit5.text)) or (strtoint (edit8.text)< strtoint (edit7.text))then

begin

messagedlg ('Π Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π²Π²Π΅Π΄Π΅Π½Ρ‹ Π½Π΅ ΠΊΠΎΡ€Π΅ΠΊΡ‚Π½ΠΎ', mterror, [mbOk], 0);

exit;

end;

N9.Enabled:=true;

memo1.Clear;

memo1.Lines.Add ('ΠžΠ±Π»Π°ΡΡ‚ΡŒ поиска');

memo1.Lines.Add ('XΠ½Π°Ρ‡='+edit1.text+' XΠΊΠΎΠ½='+edit3.text);

memo1.Lines.Add ('YΠ½Π°Ρ‡='+edit2.text+ ' YΠΊΠΎΠ½='+edit4.text);

est:=false;

Yest:=false;

summ:=0;

objekt:=0;

for ynach:=strtoint (edit2.text) to ykon do

for xnach:=(strtoint (edit1.text)) to xkon do

form2.Canvas.Pixels[nx+40+xnach, ynach+20]: =$ 10 101*newmatr[xnach, ynach];

form2.canvas.Pen.Width:=1;

form2.canvas.Pen.Color:=clgreen;

Form2.Canvas.Brush.style:=bsclear;

form2.Canvas.Pen.Style:=psdot;

Form2.Canvas.Rectangle ((strtoint (edit1.text))+nx+41,strtoint (edit2.text)+21,xkon+41+nx, ykon+21);

for ynach:=strtoint (edit2.text) to ykon do

begin

summ:=0;

yest1:=true;

if Yest=true then

begin

for xnach:=(strtoint (edit1.text)) to xkon do

begin

if newmatr[xnach, ynach]=255 then newmatrOb[xnach, ynach]: =1;

summ:=summ+newmatrOb[xnach, ynach];

end;

summ2:=(strtoint (edit3.text)-strtoint (edit1.text)+1);

if summ=summ2 then yest1:=false;

if yest1=false then

begin

yest:=false;

yest1:=true;

est:=false;

if ((XKVkon-XKVnach+1)>=strtoint (edit5.text)) and ((XKVkon-XKVnach+1)<=strtoint (edit6.text)) and ((yKVkon-yKVnach+1)>=strtoint (edit7.text))and ((yKVkon-yKVnach+1)<=strtoint (edit8.text)) then

begin

objekt:=objekt+1;

memo1.Lines.Add ('ΠšΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ области ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° '+inttostr (objekt)+':');

memo1.Lines.Add ('XΠ½Π°Ρ‡='+inttostr (Xkvnach)+' XΠΊΠΎΠ½='+inttostr (Xkvkon));

memo1.Lines.Add ('YΠ½Π°Ρ‡='+inttostr (ykvnach)+' YΠΊΠΎΠ½='+inttostr (ykvkon));

form2.canvas.Pen.Width:=2;

form2.Canvas.Pen.Color:=clred;

form2.Canvas.Rectangle (xkvnach+40+nx, ykvnach+20,nx+40+xkvkon, ykvkon+20);

end

end;

end;

for xnach:=strtoint (edit1.text) to xkon do

if newmatr[xnach, ynach]=0 then

begin

Yest:=true;

if xnach

if est=false then begin xkvnach:=xnach; ykvnach:=ynach; est:=true; end;

if xkvkon

if ykvkon

end;

end;

if objekt=0 then memo1.Lines.add ('ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½')

end;

procedure prov (var Key: Char);

begin

if not (key in ['0'.'9']) then key:=chr (0);

end;

procedure TForm2. Edit1KeyPress (Sender: TObject; var Key: Char);

begin

prov (key);

end;

procedure TForm2. Edit2KeyPress (Sender: TObject; var Key: Char);

begin

prov (key);

end;

procedure TForm2. Edit3KeyPress (Sender: TObject; var Key: Char);

begin

prov (key);

end;

procedure TForm2. Edit4KeyPress (Sender: TObject; var Key: Char);

begin

prov (key);

end;

procedure TForm2. Edit5KeyPress (Sender: TObject; var Key: Char);

begin

prov (key);

end;

procedure TForm2. Edit7KeyPress (Sender: TObject; var Key: Char);

begin

prov (key);

end;

procedure TForm2. N7Click (Sender: TObject);//Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

begin

new:=true;

panel2.Hide;

label2.Hide;

label3.Hide;

button2.Hide;

button3.Hide;

groupbox3.Hide;

form2.canvas.pen.Color:=form2.Color;

form2.canvas.pen.style:=pssolid;

form2.canvas.Brush.Style:=bssolid;

form2.canvas.Brush.Color:=form2.Color;

form2.Canvas.Rectangle (0,0,2*nx+45,2*ny+20);

end;

procedure TForm2. Edit5Change (Sender: TObject);

begin

if strtoint (edit5.Text)>=nx then edit5. text:=inttostr (nx);

end;

procedure TForm2. Edit7Change (Sender: TObject);

begin

if strtoint (edit7.Text)>=ny then edit7. text:=inttostr (ny)

end;

procedure TForm2. Edit6Change (Sender: TObject);

begin

if strtoint (edit6.Text)>=nx then edit6. text:=inttostr (nx)

end;

procedure TForm2. Edit8Change (Sender: TObject);

begin

if strtoint (edit8.Text)>=ny then edit8. text:=inttostr (ny)

end;

procedure TForm2. N5Click (Sender: TObject);//Π’Ρ‹Π·ΠΎΠ² справки

begin

ShellExecute (handle, nil, 'helphelp.html', nil, nil, SW_SHOWNORMAL);

end;

end.

unit Unit3;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, jpeg, ExtCtrls;

type

TForm3 = class (TForm)

Image1: TImage;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Button1: TButton;

Label7: TLabel;

procedure Button1Click (Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form3: TForm3;

implementation

{$R *.dfm}

procedure TForm3. Button1Click (Sender: TObject);

begin

Form3.Close;

end;

end.

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