ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π΄Π°Π½Π½ΡΡ Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Π·ΠΎΠ½Π΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ
ΠΠΎΡΠ΅ΡΠ½ΠΈΠ΅ ΠΎΠΊΠ½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΠΊΠ½ΠΎ, ΠΏΠΎΡΠ²Π»ΡΡΡΠ΅Π΅ΡΡ ΠΏΡΠΈ Π²ΡΠ±ΠΎΡΠ΅ ΠΏΡΠ½ΠΊΡΠ° ΠΌΠ΅Π½Ρ Option/Resintez, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΠΎΠ΅ Π΄Π»Ρ ΡΠ΅ΡΠΈΠ½ΡΠ΅Π·Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, Π° ΡΠ°ΠΊΠΆΠ΅ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π³ΡΠ°Π΄Π°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΠΈ. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° Π³ΡΠ°Π΄Π°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΠΊΠΎΡΠ΅ΠΊΡΠΈΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΠΎΠ³ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΡΠΊΠΎΡΡΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΎΡ 0 Π΄ΠΎ 50, ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡΡ Π΅Π³ΠΎ ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΡ ΠΈ Π·Π°ΡΠ΅ΠΌ Π½Π° ΡΠΊΡΠ°Π½ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Ρ Π½ΠΎΠ²ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΡΠΊΠΎΡΡΠΈ… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π΄Π°Π½Π½ΡΡ Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Π·ΠΎΠ½Π΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
ΠΠΠΠΠ‘Π’ΠΠ Π‘Π’ΠΠ ΠΠΠ ΠΠΠΠΠΠΠΠ― Π ΠΠΠ£ΠΠ, ΠΠΠΠΠΠΠΠ Π Π‘ΠΠΠ Π’Π Π£ΠΠ ΠΠΠΠ« ΠΠΠ‘Π£ΠΠΠ Π‘Π’ΠΠΠΠΠΠ ΠΠ«Π‘Π¨ΠΠ Π£Π§ΠΠΠΠΠ ΠΠΠΠΠΠΠΠΠ
«ΠΠΠ¦ΠΠΠΠΠΠ¬ΠΠ«Π ΠΠΠ ΠΠ«Π Π£ΠΠΠΠΠ Π‘ΠΠ’ΠΠ’»
ΠΠ°ΡΠ΅Π΄ΡΠ° Π³Π΅ΠΎΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ ΠΠ£Π Π‘ΠΠΠΠ― Π ΠΠΠΠ’Π ΠΏΠΎ Π΄ΠΈΡΡΠΈΠΏΠ»ΠΈΠ½Π΅
«ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈ Π΄Π΅ΡΠΈΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π°ΡΡΠΎΠΊΠΎΡΠΌΠΈΡΠ΅ΡΠΊΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ»
ΠΡΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ ΡΡΡΠ΄Π΅Π½ΡΡ Π³Ρ. ΠΠ-08
ΠΠ°ΠΊΠ°ΠΉ Π. Π Π§Π°Π±Π°Π½ΡΠΊ Π . Π‘ ΠΡΠΎΠ²Π΅ΡΠΈΠ»Π° ΠΡΡΠΈΡΡΠ΅Π½Ρ Π‘Π΅ΡΠ³Π΅Π΅Π²Π° Π. Π ΠΠ½Π΅ΠΏΡΠΎΠΏΠ΅ΡΡΠΎΠ²ΡΠΊ, 2012
ΠΠ°Π΄Π°Π½ΠΈΠ΅ Π Π°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π½Π° ΡΠ·ΡΠΊΠ΅ Object Pascal ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ ΠΊΠΎΡΠΌΠΈΡΠ΅ΡΠΊΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ, ΡΠ±Π΅ΡΠ΅Π³Π°Π΅ΠΌΡΡ Π² ΡΠ°ΠΉΠ»Π°Ρ ΡΠΎΡΠΌΠ°ΡΠ° LAN. Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΡΠ΅ΡΠΈΠ½ΡΠ΅Π·Π° ΡΠ²Π΅ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΠΎΠ³ΠΎ Π² Π³Π»Π°Π²Π½ΠΎΠΌ ΠΎΠΊΠ½Π΅, ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° Π²ΡΡΠ°Π²Π½ΠΈΠ²Π°Π½ΠΈΡ Π³ΠΈΡΡΠΎΠ³ΡΠ°ΠΌΠΌ ΡΡΠΊΠΎΡΡΠΈ ΠΊΠ°Π½Π°Π»ΠΎΠ², Π° ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Π²ΡΠ²ΠΎΠ΄Π° Π³ΠΈΡΡΠΎΠ³ΡΠ°ΠΌΠΌ.
1. Π’ΠΠΠ ΠΠ’ΠΠ§ΠΠ‘ΠΠΠ― Π§ΠΠ‘Π’Π¬
1.1 Π€Π°ΠΉΠ»Ρ ΡΠΎΡΠΌΠ°ΡΠ° LAN
Π€ΠΎΡΠΌΠ°Ρ LAN ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΡΠΌΠ°ΡΠΎΠΌ ΡΠ°ΠΉΠ»Π° ΡΠΈΡΡΠ΅ΠΌΡ ERDAS Π²Π΅ΡΡΠΈΠΈ Π΄ΠΎ 8-ΠΉ. ΠΡΠΎΠΌΠ΅ Π΄Π°Π½Π½ΡΡ Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Π·ΠΎΠ½Π΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠ°ΠΉΠ»Ρ Π² ΡΠ°ΠΊΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌ ΠΏΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΠΠ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΡΡΠΈΡΡΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅. ΠΠ΅Π»ΠΈΡΠΈΠ½Π° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ 128 Π±Π°ΠΉΡ.
Π‘ΡΡΡΠΊΡΡΡΠ° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΡΠ°ΠΉΠ»Π° ΡΠΎΡΠΌΠ°ΡΠ° LAN (ERDAS 7.4) ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° Π² ΡΠ°Π±Π»ΠΈΡΠ΅ 1.1.
Π’Π°Π±Π»ΠΈΡΠ° 1.1 ΠΠ°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΡΠ°ΠΉΠ»Π° ΡΠΎΡΠΌΠ°ΡΠ° LAN (ERDAS 7.4)
ΠΠΌΡ ΠΏΠΎΠ»Ρ | ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π±Π°ΠΉΡ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ | |
HDWORD | 1:6 | ΠΠ°ΡΡΠΈΠ² ΠΈΠ· 6 Π±Π°ΠΉΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΡΡΠΎΠΊΡ «HEAD74» ΠΈΠ»ΠΈ «HEADER» | |
IPACK | 7:8 | Π¦Π΅Π»ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠΊΠΎΠ»ΡΠΊΠΎ Π±Π°ΠΉΡ ΠΎΡΠ²ΠΎΠ΄ΠΈΡΡΡ Π΄Π»Ρ Π΄Π°Π½Π½ΡΡ : 0 = 8 Π±ΠΈΡ 1 = 4 Π±ΠΈΡΠ° 2 = 16 Π±ΠΈΡ | |
NBANDS | 9:10 | Π¦Π΅Π»ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠ»ΠΎΡ/ΠΊΠ°Π½Π°Π»ΠΎΠ² | |
11:16 | ΠΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ | ||
ICOLS | 17:20 | Π¦Π΅Π»ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ — ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΠΎΠ»Π±ΡΠΎΠ² | |
IROWS | 21:24 | Π¦Π΅Π»ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ — ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΡΠΎΠΊ | |
XSTART | 25:28 | Π¦Π΅Π»ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ — Ρ — ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ° ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΏΠΈΠΊΡΠ΅Π»Ρ Π² ΡΠ°ΠΉΠ»Π΅ (Π²Π΅ΡΡ Π½ΠΈΠΉ Π»Π΅Π²ΡΠΉ ΡΠ³ΠΎΠ») | |
YSTART | 29:32 | Π¦Π΅Π»ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ — Ρ — ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ° ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΏΠΈΠΊΡΠ΅Π»Ρ Π² ΡΠ°ΠΉΠ»Π΅ (Π²Π΅ΡΡ Π½ΠΈΠΉ Π»Π΅Π²ΡΠΉ ΡΠ³ΠΎΠ») | |
33:88 | ΠΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ | ||
MAPTYP | 89:90 | Π¦Π΅Π»ΠΎΠ΅, ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠΈΠΏ ΠΊΠ°ΡΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡΠΈΠΈ, ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠΉ Ρ ΡΠ°ΠΉΠ»ΠΎΠΌ | |
NCLASS | 91:92 | Π¦Π΅Π»ΠΎΠ΅, ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠ»Π°ΡΡΠΎΠ² Π² Π½Π°Π±ΠΎΡΠ΅ Π΄Π°Π½Π½ΡΡ (Π΄Π»Ρ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠΎΡΠΌΠ°ΡΠ° GIS) | |
93:106 | ΠΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ | ||
IAUTYP | 107:108 | Π¦Π΅Π»ΠΎΠ΅, ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π΅Π΄ΠΈΠ½ΠΈΡΡ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΠ»ΠΎΡΠ°Π΄ΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ²ΡΠ·Π°Π½Π° Ρ ΠΊΠ°ΠΆΠ΄ΡΠΌ ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΌ: 0 = ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ 1 = Π°ΠΊΡ 2 = Π³Π΅ΠΊΡΠ°Ρ 3 = Π΄ΡΡΠ³ΠΈΠ΅ Π΅Π΄ΠΈΠ½ΠΈΡΡ | |
ACRE | 109:112 | ΠΠ΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΏΠ»ΠΎΡΠ°Π΄Ρ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΠΈΠΊΡΠ΅Π»Π΅ Π² Π΅Π΄ΠΈΠ½ΠΈΡΠ°Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π½Π°ΡΠ°ΡΡΡ Π² ΠΏΠΎΠ»Π΅ IAUTYP | |
ΠΠΌΡ ΠΏΠΎΠ»Ρ | ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π±Π°ΠΉΡ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ | |
XMAP | 113:116 | ΠΠ΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Ρ -ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΊΠ°ΡΡΡ ΠΏΠΈΠΊΡΠ΅Π»Ρ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ Π»Π΅Π²ΠΎΠ³ΠΎ ΡΠ³Π»Π° Π² ΡΠ°ΠΉΠ»Π΅ | |
YMAP | 117:120 | ΠΠ΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Ρ-ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΊΠ°ΡΡΡ ΠΏΠΈΠΊΡΠ΅Π»Ρ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ Π»Π΅Π²ΠΎΠ³ΠΎ ΡΠ³Π»Π° Π² ΡΠ°ΠΉΠ»Π΅ | |
XCELL | 121:124 | ΠΠ΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»ΠΈΠ½Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΈΠΊΡΠ΅Π»Ρ ΠΏΠΎ Ρ -Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π² Π΅Π΄ΠΈΠ½ΠΈΡΠ°Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π½Π°ΡΠ°ΡΡΡ Π² ΠΏΠΎΠ»Π΅ MAPTYP | |
YCELL | 125:128 | ΠΠ΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»ΠΈΠ½Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΈΠΊΡΠ΅Π»Ρ ΠΏΠΎ Ρ-Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π² Π΅Π΄ΠΈΠ½ΠΈΡΠ°Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π½Π°ΡΠ°ΡΡΡ Π² ΠΏΠΎΠ»Π΅ MAPTYP | |
1.2 ΠΠΈΡΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΡΠΊΠΎΡΡΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π―ΡΠΊΠΎΡΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΊΠΎΠ½ΡΡΠ°ΡΡΠ½ΠΎΡΡΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ ΡΡΠΎΠ²Π½ΡΠΌΠΈ ΠΏΠΎΠ»ΡΡΠΎΠ½ΠΎΠ² Π² Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΠΎΠΊΠ½Π΅ (Π»ΠΎΠΊΠ°Π»ΡΠ½Π°Ρ ΠΊΠΎΠ½ΡΡΠ°ΡΡΠ½ΠΎΡΡΡ) ΠΈΠ»ΠΈ Π²ΠΎ Π²ΡΠ΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ (Π³Π»ΠΎΠ±Π°Π»ΡΠ½Π°Ρ ΠΊΠΎΠ½ΡΡΠ°ΡΡΠ½ΠΎΡΡΡ). ΠΡΡΠ΅ΠΌ ΡΡΠΈΠ»Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΡΠ°ΡΡΠ½ΠΎΡΡΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ»ΡΡΡΠΈΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΡΡΡΠΊΡΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΠΈΡΠΊΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ ΠΏΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ.
ΠΠΈΡΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ ΡΡΠΊΠΎΡΡΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ (ΡΠΈΡ 1.1) Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Π³ΡΠ°ΡΠΈΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ°ΡΡΠΎΡΡ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ ΡΠΎΡΠΊΠΈ (ΠΏΠΈΠΊΡΠ΅Π»Ρ) ΡΠ°Π·Π½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΡΡΠΊΠΎΡΡΠΈ Π² ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ. Π¨ΠΊΠ°Π»Π° ΡΡΠΊΠΎΡΡΠΈ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΎΡ 0 Π΄ΠΎ 255.
Π ΠΈΡ. 1.1 ΠΠΈΡΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΡΠΊΠΎΡΡΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ
ΠΠΈΡΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΡΠΊΠΎΡΡΠΈ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΎΡΠ΅Π½ΠΈΡΡ ΠΎΠ±ΡΠ΅Π΅ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΠΈ ΡΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² Π²ΠΈΠ΄Π΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ.
ΠΡΡΠ³ΠΎΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π³ΠΈΡΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΡΠΊΠΎΡΡΠΈ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅. ΠΠΈΡΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ ΡΠΈΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Ρ ΡΡΠΎΠ²Π½ΡΠΌΠΈ ΡΡΠΊΠΎΡΡΠΈ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ [0, L-1] Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Π΄ΠΈΡΠΊΡΠ΅ΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ
h (rk) = nk
Π³Π΄Π΅ rk Π΅ΡΡΡ k-ΡΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΡΡΠΊΠΎΡΡΠΈ, Π° nk — ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ Π² ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ, ΡΡΠΎ ΠΈΠΌΠ΅ΡΡ ΡΡΠΊΠΎΡΡΡ rk.
ΠΠ±ΡΡΠ½ΠΎΠΉ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΎΠΉ Π΅ΡΡΡ Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π³ΠΈΡΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΡΡΠ΅ΠΌ Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π½Π° ΠΎΠ±ΡΠ΅Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ Π² ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ, ΡΡΠΎ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅ΡΡΡ n. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π³ΠΈΡΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π±ΡΠ΄Π΅Ρ:
p (rk) = nk/n Π΄Π»Ρ k=0,1,…,(L-1)
Π³Π΄Π΅ p (rk) — ΠΎΡΠ΅Π½ΠΊΠ° Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΠΈ ΠΏΠΎΠΏΠ°Π΄Π°Π½ΠΈΡ ΠΏΠΈΠΊΡΠ΅Π»Ρ ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΡΠΊΠΎΡΡΠΈ rk. Π‘ΡΠΌΠΌΠ°ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π³ΠΈΡΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠ°Π²Π½ΠΎ Π΅Π΄ΠΈΠ½ΠΈΡΠ΅. ΠΠ»Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° ΡΠΈΡΡΠΎΠ²ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ Π² ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ L=256.
ΠΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠΎ ΡΠ»Π°Π±ΠΎΠΉ ΠΊΠΎΠ½ΡΡΠ°ΡΡΠ½ΠΎΡΡΡΡ ΠΈΠΌΠ΅ΡΡ Π³ΠΈΡΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΡΠΊΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ³ΡΡΠΏΠΏΠΈΡΠΎΠ²Π°Π½Π° Π² Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ. ΠΠΈΡΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠ°ΠΊΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΌΠ΅ΡΠ΅Π½Π° Π² ΠΎΠ±Π»Π°ΡΡΡ ΡΠ΅ΠΌΠ½ΡΡ ΠΈΠ»ΠΈ ΡΠ²Π΅ΡΠ»ΡΡ ΡΠΎΠ½ΠΎΠ², ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΡΡΡΡ ΠΈ Π² ΡΠ΅Π½ΡΡΠ΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° ΡΡΠΊΠΎΡΡΠΈ. ΠΠΈΡΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Ρ Ρ ΠΎΡΠΎΡΠ΅ΠΉ ΠΊΠΎΠ½ΡΡΠ°ΡΡΠ½ΠΎΡΡΡΡ ΡΠ°Π²Π½ΠΎΠΌΠ΅ΡΠ½ΠΎ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ Π²Π΅ΡΡ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΡΡΠΊΠΎΡΡΠ΅ΠΉ. Π’Π°ΠΊΠΈΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΎΠ±ΡΡΠ½ΠΎ Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΡΡ ΠΊΠ°ΠΊ Π±ΠΎΠ»Π΅Π΅ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅. Π£ Π²ΡΡΠΎΠΊΠΎΠΊΠΎΠ½ΡΡΠ°ΡΡΠ½ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΡΠ°ΠΊΠΆΠ΅ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½ Π²Π΅ΡΡ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΡΡΠΊΠΎΡΡΠΈ, Π½ΠΎ Π³ΠΈΡΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ ΠΏΠΈΠΊΠΈ, ΡΡΠΎ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ Π½Π°Π»ΠΈΡΠΈΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠΈΡ Π·ΠΎΠ½ ΡΠ΅ΠΌΠ½ΡΡ ΠΈΠ»ΠΈ ΡΠ²Π΅ΡΠ»ΡΡ ΡΠΎΠ½ΠΎΠ².
1.3 ΠΡΠ°Π΄Π°ΡΠΈΠΎΠ½Π½Π°Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΡ Π‘Π»Π°Π±ΡΠΉ ΠΊΠΎΠ½ΡΡΠ°ΡΡ — Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠΉ Π΄Π΅ΡΠ΅ΠΊΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±ΡΡΠ»ΠΎΠ²Π»Π΅Π½ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΡΠΊΠΎΡΡΠ΅ΠΉ, ΡΡΠΎ ΡΠ°ΡΡΠΎ ΡΠΎΡΠ΅ΡΠ°Π΅ΡΡΡ Ρ Π½Π΅Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΡΡΡΡ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΡΠΎΠ²Π½Π΅ΠΉ (Π³ΡΠ°Π΄Π°ΡΠΈΠΎΠ½Π½ΠΎΠΉ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΎΠΉ). ΠΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΡ ΠΏΡΡΠ΅ΠΉ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ ΡΡΠΊΠΎΡΡΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° Π³ΡΠ°Π΄Π°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΠΈ, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ Π·Π°Π΄Π°Π½Π½ΡΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΡΠΊΠΎΡΡΠΈ Π²Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎ ΡΠ°ΡΡΡΠ³ΠΈΠ²Π°Π΅ΡΡΡ Π½Π° Π²ΡΡ ΡΠΊΠ°Π»Ρ ΡΡΠΎΠ²Π½Π΅ΠΉ ΠΏΠΎΠ»ΡΡΠΎΠ½ΠΎΠ² [0-(L-1)], Π³Π΄Π΅ L=256. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΡΠΎΠ³ΠΎ ΡΠ°ΡΡΠΈΡΡΠ΅ΡΡΡ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΡΠΊΠΎΡΡΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠ΅Π³ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈ ΡΡΠΈΠΌ ΡΠ°ΠΌΡΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠ½ΡΡΠ°ΡΡΠ½ΡΠΌ. ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠΌ ΠΈ ΠΏΡΠΎΡΡΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ Π³ΡΠ°Π΄Π°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅:
ΡΠ²Π΅ΡΠ½ΠΎΠΉ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π³ΠΈΡΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΊΠΎΡΠΌΠΈΡΠ΅ΡΠΊΠΈΠΉ
Π΄Π»Ρ
Π΄Π»Ρ ,
Π΄Π»Ρ
Π³Π΄Π΅ , — ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΊΠΎΡΡΠΈ Π²Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ .
2. ΠΠ ΠΠΠ’ΠΠ§ΠΠ‘ΠΠΠ― Π§ΠΠ‘Π’Π¬
- 2.1 ΠΠ»Π°Π²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
- ΠΡΠΈ ΠΎΡΠΊΡΡΡΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΈΠΌΠ΅ΡΡΠ΅Π΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΠΉ Π½Π° ΡΠΈΡ. 2.1.
- ΠΠ° ΡΠΎΡΠΌΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ:
- Β· TMainMenu — Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΌΠ΅Π½Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
- Β· TPaintBoxΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π΄Π»Ρ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΠΈΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ
- Β· TOpenDialog — ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π΄Π»Ρ ΠΎΡΠΊΡΡΡΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ
- ΠΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΏΡΠ½ΠΊΡΠΎΠ² ΠΌΠ΅Π½Ρ, ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π² ΡΠ°Π± 2.1:
- Π’Π°Π±Π»ΠΈΡΠ° 2.1
ΠΡΠ½ΠΊΡ ΠΌΠ΅Π½Ρ | ΠΠΏΠ΅ΡΠ°ΡΠΈΡ | |
File | ||
Open | ΠΡΠΊΡΡΡΠΈΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ | |
Close | ΠΠ°ΠΊΡΡΡΠΈΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ | |
Exit | ΠΡΡ ΠΎΠ΄ ΠΈΠ· ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ | |
Operation | ||
Resintez | ΠΡΠ·ΠΎΠ² ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° ΡΠ΅ΡΠΈΠ½ΡΠ΅Π·Π° ΠΈ Π³ΡΠ°Π΄Π°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΠΈ | |
Histogram | ΠΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ Π³ΠΈΡΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ | |
Π ΠΈΡ. 2.1 ΠΠ»Π°Π²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΡΠ΅Ρ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ: TViewer, TResintez ΠΈ THistogram.
ΠΠ»Π°Π²Π½ΡΠΌ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ TViewer, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π²Π° Π΄ΡΡΠ³ΠΈΡ ΠΌΠΎΠ΄ΡΠ»Ρ. Π Π½Π΅ΠΌ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠΎΡΠΌΠ°ΡΠ° LAN, Π° ΡΠ°ΠΊΠΆΠ΅ Π²ΡΠ²ΠΎΠ΄Π° ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Π½Π° ΡΠΊΡΠ°Π½.
Π ΠΌΠΎΠ΄ΡΠ»Π΅ TResintez ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π³ΡΠ°Π΄Π°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΠΈ ΠΈ ΡΠ΅ΡΠΈΠ½ΡΠ΅Π·Π°. ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠ°Π½Π°Π»Π°ΠΌΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ (ΠΊΡΠ°ΡΠ½ΡΠΉ, Π·Π΅Π»Π΅Π½ΡΠΉ, ΡΠΈΠ½ΠΈΠΉ) ΠΈ ΠΊΠ°Π½Π°Π»Π°ΠΌΠΈ ΠΊΠΎΡΠΌΠΎΡΠ½ΠΈΠΌΠΊΠ°. Π’Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π΄Π°Π²Π°ΡΡ ΠΏΠΎΡΠΎΠ³ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΊΠΎΡΡΠΈ, Π΄Π»Ρ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΡΠ°ΡΡΠ½ΠΎΡΡΠΈ ΡΠ½ΠΈΠΌΠΊΠ°.
ΠΠΎΠ΄ΡΠ»Ρ THistogram ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° Π²ΡΠ²ΠΎΠ΄ Π³ΠΈΡΡΠΎΠ³ΡΠ°ΠΌΠΌ ΡΡΠΊΠΎΡΡΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ. ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈΠΌΠ΅Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΡΠ±ΡΠ°ΡΡ ΠΊΠ°Π½Π°Π» ΠΈ Π·Π°Π΄Π°ΡΡ ΠΏΠΎΡΠΎΠ³ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ UML-Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌ ΠΊΠ»Π°ΡΡΠΎΠ² (ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π) ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈ ΠΏΠΎΠ»Ρ Π΄Π°Π½Π½ΡΡ , ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ΡΡ Π² ΠΊΠ»Π°ΡΡΠ°Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
2.2 ΠΠΎΡΠ΅ΡΠ½ΠΈΠ΅ ΠΎΠΊΠ½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΠΊΠ½ΠΎ, ΠΏΠΎΡΠ²Π»ΡΡΡΠ΅Π΅ΡΡ ΠΏΡΠΈ Π²ΡΠ±ΠΎΡΠ΅ ΠΏΡΠ½ΠΊΡΠ° ΠΌΠ΅Π½Ρ Option/Resintez, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΠΎΠ΅ Π΄Π»Ρ ΡΠ΅ΡΠΈΠ½ΡΠ΅Π·Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, Π° ΡΠ°ΠΊΠΆΠ΅ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π³ΡΠ°Π΄Π°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΠΈ. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° Π³ΡΠ°Π΄Π°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΠΊΠΎΡΠ΅ΠΊΡΠΈΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΠΎΠ³ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΡΠΊΠΎΡΡΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΎΡ 0 Π΄ΠΎ 50, ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡΡ Π΅Π³ΠΎ ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΡ ΠΈ Π·Π°ΡΠ΅ΠΌ Π½Π° ΡΠΊΡΠ°Π½ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Ρ Π½ΠΎΠ²ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΡΠΊΠΎΡΡΠΈ.
ΠΠΊΠ½ΠΎ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ²: Π’SplinEdit, TLable, TBitBtn, TComboBox, TPanel.
Π ΠΈΡ 2.2 ΠΠΊΠ½ΠΎ Π²ΡΠ±ΠΎΡ ΠΊΠ°Π½Π°Π»ΠΎΠ²
ΠΠΊΠ½ΠΎ, ΠΏΠΎΡΠ²Π»ΡΡΡΠ΅Π΅ΡΡ ΠΏΡΠΈ Π²ΡΠ±ΠΎΡΠ΅ ΠΏΡΠ½ΠΊΡΠ° ΠΌΠ΅Π½Ρ Option/Histogram, Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π³ΠΈΡΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΡΠΊΠΎΡΡΠΈ ΠΏΠΎ ΠΊΠ°Π½Π°Π»Π°ΠΌ Π΄Π»Ρ Π²Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΊΠΎΡΡΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ. Π Π»Π΅Π²ΠΎΠΉ ΡΠ°ΡΡΠΈ ΠΎΠΊΠ½Π°-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π²ΡΠ΅Π³Π΄Π° ΡΡΡΠΎΠΈΡΡΡΡ Π³ΠΈΡΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΡΠΊΠΎΡΡΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, Π½Π΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ Π±ΡΠ»ΠΎ Π»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ ΠΏΠΎΡΠΎΠ³ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΡΠΊΠΎΡΡΠΈ Π΄ΠΎ ΡΡΠΎΠ³ΠΎ.
ΠΠΊΠ½ΠΎ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ²: Π’SplinEdit, TLable, TBitBtn, TComboBox, TPanel, NChar.
Π ΠΈΡ. 2.3 ΠΠΊΠ½ΠΎ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π³ΠΈΡΡΠΎΠ³ΡΠ°ΠΌΠΌ
2.3 ΠΠ½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄ ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ delt1234 Ρ ΠΏΠΎΡΠΎΠ³ΠΎΠ²ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΡΠΊΠΎΡΡΠΈ = 5.
Π ΠΈΡ. 2.4 Π Π°Π±ΠΎΡΠ°ΡΡΠ΅Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
3. ΠΠΠ‘Π’Π ΠΠΠΠΠ ΠΠΠ‘Π’ΠΠΠ ΠΠΠΠ« Π―Π ΠΠΠ‘Π’Π Π Π‘Π ΠΠΠ MATLAB
ΠΠ»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΠΈ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π±ΡΠ»ΠΈ ΡΡΠ°Π²Π½Π΅Π½Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π³ΠΈΡΡΠΎΠ³ΡΠ°ΠΌΠΌ ΡΡΠΊΠΎΡΡΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΊΠ°Π½Π°Π»ΠΎΠ² Ρ Π³ΠΈΡΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌΠΈ, ΠΏΠΎΡΡΡΠΎΠ΅Π½Π½ΡΠΌΠΈ Π² ΡΡΠ΅Π΄Π΅ MATLAB.
ΠΠ»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π³ΠΈΡΡΠΎΠ³ΡΠ°ΠΌΠΌ ΡΡΠΊΠΎΡΡΠΈ Π² MATLAB ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Π° Π²ΡΡΡΠΎΠ΅Π½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ imhist. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΊΠΎΠ΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
clc
clear
a=imread ('butovo.bmp');
a1=imread ('butovo_r.bmp');
fr=a (, 1);
fg=a (, 2);
fb=a (, 3);
max_stat=max (imhist (fr))
b=imhist (fr)*100/max_stat;
plot (b);
Π ΡΠ°Π±Π»ΠΈΡΠ΅ 3.1 ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π³ΠΈΡΡΠΎΠ³ΡΠ°ΠΌΠΌ
Π’Π°Π±Π»ΠΈΡΠ° 3.1
Viewer | MATLAB | |
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π³ΠΈΡΡΠΎΠ³ΡΠ°ΠΌΠΌ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ.
ΠΡΠ²ΠΎΠ΄Ρ Π Π΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°Π΄Π°Π½ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΡΠΌΠΈΡΠ΅ΡΠΊΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ, ΡΠΎΡ ΡΠ°Π½Π΅Π½Π½ΡΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ LAN. Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΠ΅ΡΠΈΠ½ΡΠ΅Π·Π° ΡΠ²Π΅ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π³ΠΈΡΡΠΎΠ³ΡΠ°ΠΌΠΌ ΡΡΠΊΠΎΡΡΠΈ Π΄Π»Ρ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΏΠΎΠ΄Π²Π΅ΡΠ³Π½ΡΡΠΎΠ³ΠΎ Π³ΡΠ°Π΄Π°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΠΈ. ΠΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π³ΡΠ°Π΄Π°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π½Π° Π±Π°Π·Π΅ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΊΡΡΠΎΡΠ½ΠΎ-Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ³ΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΊΠΎΡΡΠΈ.
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΎ Π½Π° ΡΡΠ΅Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΡ ΡΠΈΠΏΠ° LAN: Butovo, delt1234, TIPJUL1. ΠΠ»Ρ Π°Π½Π°Π»ΠΈΠ·Π° ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² ΡΡΠ΅Π΄Π΅ MatLab Π±ΡΠ»ΠΈ ΡΠ°ΡΡΡΠΈΡΠ°Π½Ρ ΡΡΠ΅Π΄Π½ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΡΠΊΠΎΡΡΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΎΡΡΠΈΠ»ΡΡΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈΡ Π΄ΠΈΡΠΏΠ΅ΡΡΠΈΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ Π±ΡΠ»ΠΈ ΠΏΠΎΡΡΡΠΎΠ΅Π½Ρ Π³ΠΈΡΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΡΠΊΠΎΡΡΠΈ. ΠΡΡ ΠΎΠ΄Ρ ΠΈΠ· ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ.
1. ΠΠΎΠ½ΡΠ°Π»Π΅Ρ Π ., ΠΡΠ΄Ρ Π ., ΠΠ΄Π΄ΠΈΠ½Ρ Π‘. «Π¦ΠΈΡΡΠΎΠ²Π°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π² ΡΡΠ΅Π΄Π΅ MatLab»: ΠΠΎΡΠΊΠ²Π°: Π’Π΅Ρ Π½ΠΎΡΡΠ΅ΡΠ°, 2006 — 616Ρ.
2. ΠΠΎΠ½ΡΠ°Π»Π΅Ρ Π ., ΠΡΠ΄Ρ Π ., ΠΠ΄Π΄ΠΈΠ½Ρ Π‘. «Π¦ΠΈΡΡΠΎΠ²Π°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ»: ΠΠΎΡΠΊΠ²Π°: Π’Π΅Ρ Π½ΠΎΡΡΠ΅ΡΠ°, 2006 — 1072Ρ.
3. ΠΠ°ΡΠΊΡΡΠ° Π. Π., ΠΠ°Π±Π΅Π½ΠΊΠΎ Π. Π., «ΠΠ±ΡΠΎΠ±ΠΊΠ° ΡΠ° Π΄Π΅ΡΠΈΡΡΡΠ²Π°Π½Π½Ρ Π°Π΅ΡΠΎΠΊΠΎΡΠΌiΡΠ½ΠΈΡ Π·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½Ρ»: ΠΠ΅ΡΠΎΠ΄ΠΈΡΠ½i ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρii Π.: ΠΠ°ΡiΠΎΠ½Π°Π»ΡΠ½ΠΈΠΉ Π³iΡΠ½ΠΈΡΠΈΠΉ ΡΠ½iΠ²Π΅ΡΡΠΈΡΠ΅Ρ, 2008 — 72Ρ.
4. Leica Geosystems, Erdas Imgine, ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ TourGuides, 2005 — 707Ρ.
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π ΠΠΎΠ΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, ExtCtrls, Unit2, Unit3, StdCtrls;
type
TViewer = class (TForm)
OD: TOpenDialog;
PB: TPaintBox;
Menu: TMainMenu;
File1: TMenuItem;
Open1: TMenuItem;
Close1: TMenuItem;
Exit1: TMenuItem;
Operation: TMenuItem;
Resintez1: TMenuItem;
Histogram1: TMenuItem;
TScrollBox1: TScrollBox;
function OpenDialog: boolean;
procedure CreateBitmap;
procedure DestroyData;
procedure PBPaint (Sender:TObject);
procedure FormClose (Sender: TObject; var Action: TCloseAction);
procedure LoadLan;
procedure Open1Click (Sender: TObject);
procedure Close1Click (Sender: TObject);
procedure Exit1Click (Sender: TObject);
procedure Resintez1Click (Sender: TObject);
procedure Histogram1Click (Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
bmp:TBitmap;
end;
var
Viewer: TViewer;
nRows:integer;
nCols:integer;
nBands:integer;
flLoadData:boolean;
type LAN_HEADER=record
HDWORD:array[0.5]of Byte;
IPACK:WORD;
IBANDS:WORD;
unused1:array[0.5] of Byte;
ICOLS:integer;
IROWS:integer;
xstart:integer;
ystart:integer;
unused2:array[0.55]of byte;
maptyp:word;
nclass:word;
unused3:array[0.13]of byte;
iautyp:word;
acre:single;
xmap:single;
ymap:single;
xcell:single;
ycell:single;
end;
implementation
{$R *.dfm}
//ΠΡΠΊΡΡΡΠΈΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ *.LAN
function TViewer. OpenDialog:boolean;
begin
OD.Filter:='LAN Files (*.lan)|*.lan';
result:=OD.Execute;
end;
procedure TViewer. CreateBitmap;
var
i, j: integer;
begin
for i:=0 to nRows-1 do
for j:=0 to nCols-1 do
bmp.canvas.Pixels[j, i]: =RGB (histogram.data[i, j, Resintez. b1−1], histogram. data[i, j, Resintez. b2−1], histogram. data[i, j, Resintez. b3−1]);
end;
//Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅Ρ
procedure TViewer. DestroyData;
begin
if flLoadData then
begin
flLoadData:=false;
bmp.Dormant;
bmp.FreeImage;
bmp.Free;
bmp:=nil;
histogram.data:=nil;
end;
if (Resintez.bmp1<>nil) then
begin
Resintez.bmp1.Dormant;
Resintez.bmp1.FreeImage;
Resintez.bmp1.Free;
Resintez.bmp1:=nil;
Resintez.ch1:=false;
end;
end;
//ΠΡΡΠΈΡΠΎΠ²ΠΊΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ
procedure TViewer. PBPaint (Sender:TObject);
begin
if flLoadData then begin
if Resintez. ch1=true then
PB.Canvas.Draw (0,0,Resintez.bmp1)
else
PB.Canvas.Draw (0,0,bmp);
end;
end;
procedure TViewer. FormClose (Sender: TObject; var Action: TCloseAction);
begin
DestroyData;
end;
//Π‘ΡΠΈΡΡΠ²Π°Π½ΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° LAN
procedure TViewer. LoadLan;
var
FHeader:file;
lan:LAN_HEADER;
buf:Byte;
i, j, k:integer;
begin
try
AssignFile (FHeader, OD. FileName);
Reset (FHeader, 1);
BlockRead (FHeader, lan, sizeof (lan));
SetLength (histogram.data, lan. IROWS, lan. ICOLS, lan. IBANDS);
PB.width:=lan.ICOLS;
PB.Height:=lan.IROWS;
bmp:=TBitmap.Create;
bmp.width:=lan.ICOLS;
bmp.Height:=lan.IROWS;
nRows:=lan.IROWS;
nCols:=lan.ICOLS;
nBands:=lan.IBANDS;
for i:=0 to lan. IROWS-1 do
for k:=0 to lan. IBANDS-1 do
for j:=0 to lan. ICOLS-1 do
begin
BlockRead (FHeader, buf, 1);
histogram.data[i, j, k]: =buf;
end;
flLoadData:=true;
finally
CloseFile (FHeader);
end;
end;
procedure TViewer. Open1Click (Sender: TObject);
var i: integer;
begin
if OpenDialog then
begin
DestroyData;
LoadLAN;
Resintez.Repaint;
with Resintez do
begin
R.ItemIndex:=-1;
G.ItemIndex:=-1;
B.ItemIndex:=-1;
R.Items.Clear;
G.Items.Clear;
B.Items.Clear;
OK.Enabled:=false;
for i:=0 to nbands-1 do
begin
R.Items.Add (inttostr (1+i));
G.Items.Add (inttostr (1+i));
B.Items.Add (inttostr (1+i));
end;
end;
Resintez.ShowModal;
CreateBitmap;
W:=bmp.Width;
H:=bmp.Height;
PB.Repaint;
Open1.Enabled:=false;
Close1.Enabled:=true;
Resintez1.Enabled:=true;
Histogram1.Enabled:=true;
end;
end;
procedure TViewer. Close1Click (Sender: TObject);
begin
DestroyData;
Open1.Enabled:=true;
Close1.Enabled:=false;
Resintez1.Enabled:=false;
Histogram1.Enabled:=false;
pb.Repaint;
Resintez.Porog.Value:=0;
Resintez.R.ItemIndex:=-1;
Resintez.g.ItemIndex:=-1;
Resintez.B.ItemIndex:=-1;
end;
procedure TViewer. Exit1Click (Sender: TObject);
begin
Viewer.Close;
end;
//ΠΡΠΊΡΡΡΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° ΡΠ΅ΡΠΈΡΠ½Π΅Π·Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ
procedure TViewer. Resintez1Click (Sender: TObject);
begin
Resintez.ShowModal;
CreateBitmap;
PB.Repaint;
end;
//ΠΡΠΊΡΡΡΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π³ΠΈΡΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
procedure TViewer. Histogram1Click (Sender: TObject);
begin
Histogram.ShowModal;
end;
end.
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Spin, Buttons, Math, ExtCtrls;
type A=array of array of integer;
type
TResintez = class (TForm)
Panel1: TPanel;
Porog: TSpinEdit;
Panel2: TPanel;
Label1: TLabel;
LabelR: TLabel;
R: TComboBox;
LabelG: TLabel;
G: TComboBox;
LabelB: TLabel;
B: TComboBox;
OK: TBitBtn;
Close: TBitBtn;
procedure OKClick (Sender: TObject);
procedure RChange (Sender: TObject);
procedure GChange (Sender: TObject);
procedure BChange (Sender: TObject);
procedure BrightHist;
procedure Grad_cor (mas:A);
procedure PorogChange (Sender: TObject);
procedure FormCreate (Sender: TObject);
procedure Panel2MouseMove (Sender: TObject; Shift: TShiftState; X,
Y: Integer);
private
{ Private declarations }
public
{ Public declarations }
massivR:A;
massivG:A;
massivB:A;
bmp1:TBitmap;
ch, ch1: boolean;
b1,b2,b3:integer;
end;
var
Resintez: TResintez;
implementation
uses Unit1, Unit3;
{$R *.dfm}
procedure TResintez. OKClick (Sender: TObject);
var
i, j: integer;
begin
//ΠΡΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ ΠΏΠΎΡΠΎΠ³ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΊΠΎΡΡΠΈ,
//ΡΠΎ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ bmp1 ΡΠΈΠΏΠ° TBitmap, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ
//Π±ΡΠ΄Π΅Ρ Ρ ΡΠ°Π½ΠΈΡΡΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅.
if (ch1=true) then begin
bmp1:=TBitmap.Create;
bmp1.width:=Viewer.bmp.width;
bmp1.Height:=viewer.bmp.height;
BrightHist;
for i:=0 to bmp1. width-1 do
for j:=0 to bmp1. Height-1 do
//ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½Π½ΡΡ ΡΡΠΊΠΎΡΡΠ΅ΠΉ //ΠΊΠ°Π½Π°Π»ΠΎΠ² bmp1.canvas.Pixels[i, j]: =RGB (massivR[i, j], massivG[i, j], massivB[i, j]);
end;
end;
//Π‘ΡΠΈΡΡΠ²Π°Π½ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π²ΡΠ±ΡΠ°Π½Π½ΡΡ ΠΊΠ°Π½Π°Π»ΠΎΠ²
procedure TResintez. RChange (Sender: TObject);
begin
b1:=Strtoint (Resintez.R.Items.Strings[Resintez.R.ItemIndex]);
end;
procedure TResintez. GChange (Sender: TObject);
begin
b2:=Strtoint (Resintez.G.Items.Strings[Resintez.G.ItemIndex]);
end;
procedure TResintez. BChange (Sender: TObject);
begin
b3:=Strtoint (Resintez.B.Items.Strings[Resintez.B.ItemIndex]);
end;
//Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² ΠΊΠ°Π½Π°Π»ΠΎΠ² ΡΡΠΊΠΎΡΡΠ΅ΠΉ
procedure TResintez. BrightHist;
var
stat:array[0.255] of double;
y:array[0.255] of double;
MAX_STAT, x: extended;
L, h, w, percent, max, i, j, u1, u2,z:integer;
begin
L:=256;
h:=bmp1.Height;
w:=bmp1.Width;
Setlength (massivR, w, h);
Setlength (massivG, w, h);
Setlength (massivB, w, h);
for i:=0 to w-1 do
for j:=0 to h-1 do
massivR[i, j]: =histogram.data[j, i, Resintez. b1−1];
for i:=0 to w-1 do
for j:=0 to h-1 do
massivG[i, j]: =histogram.data[j, i, Resintez. b2−1];
for i:=0 to w-1 do
for j:=0 to h-1 do
massivB[i, j]: =histogram.data[j, i, Resintez. b3−1];
//ΠΡΠ·ΠΎΠ² ΠΏΡΠΎΡΠ΅Π΄ΡΡ Π³ΡΠ°Π΄Π°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΠΈ
grad_cor (massivR);
grad_cor (massivG);
grad_cor (massivB);
end;
//ΠΡΠΎΡΠ΅Π΄ΡΡΠ° Π³ΡΠ°Π΄Π°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΠΊΠΎΡΡΠ΅ΡΠΈΠΈ
procedure TResintez. Grad_cor (mas:A);
var
stat:array[0.255] of double;
y:array[0.255] of double;
MAX_STAT, x: extended;
L, h, w, percent, max, i, j, u1, u2,z:integer;
begin
h:=bmp1.Height;
w:=bmp1.Width;
L:=256;
for i:=0 to 255 do
stat[i]: =0;
//ΠΠΎΠ΄ΡΡΠΈΡΡΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²
//ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠΉ ΡΡΠΊΠΎΡΡΠΈ
for i:=0 to w-1 do
for j:=0 to h-1 do
stat[mas[i, j]]: =stat[mas[i, j]]+1;
MAX_STAT:=0;
for i:=0 to 255 do
if MAX_STAT
for i:=0 to 255 do
y[i]: =((stat[i]*100)/MAX_STAT);
//ΠΠ°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΡΠΊΠΎΡΡΠΈ
percent:=Porog.Value;
max:=100;
i:=0;
while i<256 do begin
if (y[i]=100) then z:=i;
i:=i+1;
end;
x:=max*percent/100;
u1:=0;
u2:=0;
i:=0;
repeat
if (y[i]>=x) then begin u1:=i; break; end;
i:=i+1;
until i>(z-1);
i:=z;
repeat
if (y[i]>=x) then u2:=i;
i:=i+1;
until i>255;
//ΠΡΡΠΎΡΠ½ΠΎ-Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅
for i:=0 to w-1 do
for j:=0 to h-1 do
begin
if mas[i, j]
then mas[i, j]: =0
else if (mas[i, j]>=u1) and (mas[i, j]<=u2)
then mas[i, j]: =trunc (((mas[i, j]-u1)/(u2-u1))*(L-1))
else if mas[i, j]>u2
then mas[i, j]: =L-1;
end;
end;
procedure TResintez. PorogChange (Sender: TObject);
begin
ch1:=true;
end;
procedure TResintez. FormCreate (Sender: TObject);
begin
ch1:=false;
end;
procedure TResintez. Panel2MouseMove (Sender: TObject;
Shift: TShiftState; X, Y: Integer);
begin
ch:=false;
if (R.ItemIndex>-1) and (G.ItemIndex>-1) and (B.ItemIndex>-1)
then
OK.Enabled:=true;
end;
end.
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, TeeProcs, TeEngine, Chart, Unit2, Buttons,
Spin, Series, Math;
type
THistogram = class (TForm)
Panel1: TPanel;
Bands: TLabel;
BandNum: TComboBox;
Chart1: TChart;
Chart2: TChart;
Porog: TSpinEdit;
Correction: TBitBtn;
procedure BandNumChange (Sender: TObject);
procedure BandHist;
procedure CorrectionClick (Sender: TObject);
procedure FormClose (Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
data:array of array of array of byte;
{ Public declarations }
end;
var
Histogram: THistogram;
MAX_STAT:extended;
massiv:array of array of integer;
w, h: integer;
y:array [0.255] of double;
implementation
uses Unit1;
{$R *.dfm}
//ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠ°Π½Π°Π»Π°
procedure THistogram. BandNumChange (Sender: TObject);
begin
chart2.SeriesList.Clear;
chart2.Repaint;
Porog.Value:=0;
chart1.SeriesList.Clear;
BandHist;
Chart1.Repaint;
Correction.Enabled:=true;
end;
//ΠΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ Π³ΠΈΡΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ
procedure THistogram. Bandhist;
var
i, j: integer;
gr:TLineSeries;
stat:array[0.255] of double;
begin
gr:=TLineSeries.Create (nil);
h:=viewer.PB.Height;
w:=Viewer.PB.Width;
Setlength (massiv, w, h);
for i:=0 to h-1 do
for j:=0 to w-1 do begin
case BandNum. ItemIndex of
0: massiv[j, i]: = data[i, j, Resintez. b1−1];
1: massiv[j, i]: = data[i, j, Resintez. b2−1];
2: massiv[j, i]: = data[i, j, Resintez. b3−1];
end;
end;
for i:=0 to 255 do
stat[i]: =0;
for i:=0 to w-1 do
for j:=0 to h-1 do
stat[massiv[i, j]]: =stat[massiv[i, j]]+1;
MAX_STAT:=0;
for i:=0 to 255 do
if MAX_STAT
for i:=0 to 255 do
y[i]: =((stat[i]*100)/MAX_STAT);
i:=0;
while i<=255 do
begin
gr.AddXY (i, y[i]);
i:=i+1;
end;
gr.Marks.Visible:=false;
Chart1.AddSeries (gr);
end;
//ΠΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ Π³ΠΈΡΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ
procedure THistogram. CorrectionClick (Sender: TObject);
var
sgr:TLineSeries;
stat:array[0.255] of double;
x, max: double;
i, ii, j, z, ind, percent, u1, u2:integer;
L:integer;
mas_corrected:array of array of integer;
y1:array [0.255] of double;
begin
mas_corrected:=nil;
SetLength (mas_corrected, Viewer.PB.Width, Viewer.PB.Height);
Chart2.SeriesList.Clear;
Chart2.Repaint;
L:=256;
sgr:=TLineSeries.Create (nil);
percent:=Porog.Value;
max:=100;
ii:=0;
while ii<256 do begin
if (y[ii]=100) then z:=ii;
ii:=ii+1;
end;
x:=max*percent/100;
u1:=0;
u2:=0;
ii:=0;
repeat
if (y[ii]>=x) then begin u1:=ii; break; end;
ii:=ii+1;
until ii>(z-1);
ii:=z;
repeat
if (y[ii]>=x) then begin u2:=ii; end;
ii:=ii+1;
until ii>255;
for i:=0 to w-1 do
for j:=0 to h-1 do
begin
if massiv[i, j]
then mas_corrected[i, j]: =0
else if (massiv[i, j]>=u1) and (massiv[i, j]<=u2)
then mas_corrected[i, j]: =trunc (((massiv[i, j]-u1)/(u2-u1))*(L-1))
else if massiv[i, j]>u2
then mas_corrected[i, j]: =L-1;
end;
for i:=0 to 255 do
stat[i]: =0;
for i:=0 to w-1 do
for j:=0 to h-1 do
stat[mas_corrected[i, j]]: =stat[mas_corrected[i, j]]+1;
MAX_STAT:=0;
for i:=0 to 255 do
if MAX_STAT
for i:=0 to 255 do
y1[i]: =((stat[i]*100)/MAX_STAT);
i:=0;
while i<=255 do
begin
sgr.AddXY (i, y1[i]);
i:=i+1;
end;
sgr.Marks.Visible:=false;
Chart2.AddSeries (sgr);
end;
procedure THistogram. FormClose (Sender: TObject; var Action: TCloseAction);
begin
Chart2.SeriesList.Clear;
Chart2.Repaint;
Chart1.SeriesList.Clear;
Chart1.Repaint;
BandNum.ItemIndex:=-1;
Porog.Value:=0;
end;
end.