Π¨ΠΏΠ°ΡΠ³Π°Π»ΠΊΠ° ΠΏΠΎ OpenCV β Python
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ OpenCV?
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠ³ΠΎ Π·ΡΠ΅Π½ΠΈΡ ΠΈ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ. Π Π½Π΅Ρ Π²Ρ ΠΎΠ΄ΡΡ Π±ΠΎΠ»Π΅Π΅ 2500 Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ², Π² ΠΊΠΎΡΠΎΡΡΡ Π΅ΡΡΡ ΠΊΠ°ΠΊ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅, ΡΠ°ΠΊ ΠΈ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ Π΄Π»Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠ³ΠΎ Π·ΡΠ΅Π½ΠΈΡ ΠΈ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ. ΠΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΈΠΌΠ΅Π΅Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ·ΡΠΊΠ°Ρ , ΡΡΠ΅Π΄ΠΈ ΠΊΠΎΡΠΎΡΡΡ Π΅ΡΡΡ Python (Π² ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π΅Π³ΠΎ), Java, C++ ΠΈ Matlab.
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅
- Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ°.
- ΠΠΌΠΏΠΎΡΡ ΠΈ ΠΏΡΠΎΡΠΌΠΎΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ.
- ΠΠ±ΡΠ΅Π·ΠΊΠ°.
- ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ°.
- ΠΠΎΠ²ΠΎΡΠΎΡ.
- ΠΡΠ°Π΄Π°ΡΠΈΡ ΡΠ΅ΡΠΎΠ³ΠΎ ΠΈ ΠΏΠΎΡΠΎΠ³.
- Π Π°Π·ΠΌΡΡΠΈΠ΅/ΡΠ³Π»Π°ΠΆΠΈΠ²Π°Π½ΠΈΠ΅.
- Π ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠΎΠ².
- Π ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π»ΠΈΠ½ΠΈΠΉ.
- Π’Π΅ΠΊΡΡ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ.
- Π Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΠ΅ Π»ΠΈΡ.
- Contours β ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ².
- Π‘ΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ.
ΠΠΌΠΏΠΎΡΡ ΠΈ ΠΏΡΠΎΡΠΌΠΎΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ ΠΡΠΈ ΡΡΠ΅Π½ΠΈΠΈ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ Π²ΡΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠ²Π΅ΡΠΎΠ²ΠΎΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ Π½Π΅ RGB (ΠΊΠ°ΠΊ Π²ΡΠ΅ ΠΏΡΠΈΠ²ΡΠΊΠ»ΠΈ), Π° BGR. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π² Π½Π°ΡΠ°Π»Π΅ ΡΡΠΎ Π½Π΅ ΡΠ°ΠΊ Π²Π°ΠΆΠ½ΠΎ, Π½ΠΎ ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π²Ρ Π½Π°ΡΠ½ΡΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠ²Π΅ΡΠΎΠΌ β ΡΡΠΎΠΈΡ Π·Π½Π°ΡΡ ΠΎΠ± ΡΡΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ. ΠΡΡΡ 2 ΠΏΡΡΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ:
- ΠΠΎΠΌΠ΅Π½ΡΡΡ ΠΌΠ΅ΡΡΠ°ΠΌΠΈ 1-ΠΉ ΠΊΠ°Π½Π°Π» (R β ΠΊΡΠ°ΡΠ½ΡΠΉ) Ρ 3-ΠΌ ΠΊΠ°Π½Π°Π»ΠΎΠΌ (B β ΡΠΈΠ½ΠΈΠΉ), ΠΈ ΡΠΎΠ³Π΄Π° ΠΊΡΠ°ΡΠ½ΡΠΉ ΡΠ²Π΅Ρ Π±ΡΠ΄Π΅Ρ
(0,0,255), Π° Π½Π΅(255,0,0). - ΠΠΎΠΌΠ΅Π½ΡΡΡ ΡΠ²Π΅ΡΠΎΠ²ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Π½Π° RGB:rgb_image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)Π ΡΠΎΠ³Π΄Π° Π² ΠΊΠΎΠ΄Π΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΆΠ΅ Π½Π΅ Ρ image, Π° Ρ rgb_image.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ Π§ΡΠΎΠ±Ρ Π·Π°ΠΊΡΡΡΡ ΠΎΠΊΠ½ΠΎ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, Π½Π°ΠΆΠΌΠΈΡΠ΅ Π»ΡΠ±ΡΡ ΠΊΠ»Π°Π²ΠΈΡΡ. ΠΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ Π·Π°ΠΊΡΡΡΠΈΡ ΠΎΠΊΠ½Π°, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΠΊΠ½ΡΡΡΡΡ Π½Π° ΠΏΠΎΠ΄Π²ΠΈΡΠ°Π½ΠΈΡ.
ΠΠ° ΠΏΡΠΎΡΡΠΆΠ΅Π½ΠΈΠΈ ΡΡΠ°ΡΡΠΈ Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄:
ΠΠ°Π΄ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
ΠΠ΄Π΅ image[10:500, 500:2000] β ΡΡΠΎ image[y:y + Π²ΡΡΠΎΡΠ°, x:x + ΡΠΈΡΠΈΠ½Π°].
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ°
ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΡΡΠΈΡΡΠ²Π°Π΅Ρ ΡΠΎΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΡΠΎΠ½ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ. ΠΡΡΠ³ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π·Π΄Π΅ΡΡ.
ΠΠΎΠ²ΠΎΡΠΎΡ
image.shape Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π²ΡΡΠΎΡΡ, ΡΠΈΡΠΈΠ½Ρ ΠΈ ΠΊΠ°Π½Π°Π»Ρ. M β ΠΌΠ°ΡΡΠΈΡΠ° ΠΏΠΎΠ²ΠΎΡΠΎΡΠ° β ΠΏΠΎΠ²ΠΎΡΠ°ΡΠΈΠ²Π°Π΅Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° 180 Π³ΡΠ°Π΄ΡΡΠΎΠ² Π²ΠΎΠΊΡΡΠ³ ΡΠ΅Π½ΡΡΠ°. -ve β ΡΡΠΎ ΡΠ³ΠΎΠ» ΠΏΠΎΠ²ΠΎΡΠΎΡΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠ°ΡΠΎΠ²ΠΎΠΉ ΡΡΡΠ΅Π»ΠΊΠ΅, Π° +ve, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, ΠΏΡΠΎΡΠΈΠ² ΡΠ°ΡΠΎΠ²ΠΎΠΉ.
ΠΠ΅ΡΠ΅Π²ΠΎΠ΄ Π² Π³ΡΠ°Π΄Π°ΡΠΈΠΈ ΡΠ΅ΡΠΎΠ³ΠΎ ΠΈ Π² ΡΡΡΠ½ΠΎ-Π±Π΅Π»ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΏΠΎΡΠΎΠ³Ρ
gray_image β ΡΡΠΎ ΠΎΠ΄Π½ΠΎΠΊΠ°Π½Π°Π»ΡΠ½Π°Ρ Π²Π΅ΡΡΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ.
Π€ΡΠ½ΠΊΡΠΈΡ threshold Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π²ΡΠ΅ ΠΏΠΈΠΊΡΠ΅Π»ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΅ΠΌΠ½Π΅Π΅ (ΠΌΠ΅Π½ΡΡΠ΅) 127 Π·Π°ΠΌΠ΅Π½Π΅Π½Ρ Π½Π° 0, Π° Π²ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΡΠ΅ (Π±ΠΎΠ»ΡΡΠ΅) 127, β Π½Π° 255.
ΠΠ»Ρ ΡΡΠ½ΠΎΡΡΠΈ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΠ΄Π΅ΡΡ Π²ΡΡ, ΡΡΠΎ ΡΠ΅ΠΌΠ½Π΅Π΅, ΡΠ΅ΠΌ 150, Π·Π°ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π½Π° 10, Π° Π²ΡΡ, ΡΡΠΎ ΡΡΡΠ΅, β Π½Π° 200.
ΠΡΡΠ°Π»ΡΠ½ΡΠ΅ threshold-ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΠΏΠΈΡΠ°Π½Ρ Π·Π΄Π΅ΡΡ.
Π Π°Π·ΠΌΡΡΠΈΠ΅/ΡΠ³Π»Π°ΠΆΠΈΠ²Π°Π½ΠΈΠ΅
Π€ΡΠ½ΠΊΡΠΈΡ GaussianBlur (ΡΠ°Π·ΠΌΡΡΠΈΠ΅ ΠΏΠΎ ΠΠ°ΡΡΡΡ) ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ 3 ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°:
- ΠΡΡ ΠΎΠ΄Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅.
- ΠΠΎΡΡΠ΅ΠΆ ΠΈΠ· 2 ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΡΡ Π½Π΅ΡΡΡΠ½ΡΡ ΡΠΈΡΠ΅Π». Π§Π΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΡΠΈΡΠ»Π°, ΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΡΠΈΠ»Π° ΡΠ³Π»Π°ΠΆΠΈΠ²Π°Π½ΠΈΡ.
- sigmaX ΠΈ sigmaY. ΠΡΠ»ΠΈ ΡΡΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΎΡΡΠ°Π²ΠΈΡΡ ΡΠ°Π²Π½ΡΠΌΠΈ 0, ΡΠΎ ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΡΡΠΈΡΠ°Π½ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ.
ΠΠΎΠ»ΡΡΠ΅ ΠΏΡΠΎ ΡΠ°Π·ΠΌΡΡΠΈΠ΅ Π·Π΄Π΅ΡΡ.
Π ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠΎΠ²
ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ 5 ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²:
- Π‘Π°ΠΌΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅.
- ΠΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ° Π²Π΅ΡΡ
Π½Π΅Π³ΠΎ Π»Π΅Π²ΠΎΠ³ΠΎ ΡΠ³Π»Π°
(x1, y1). - ΠΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ° Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΠΏΡΠ°Π²ΠΎΠ³ΠΎ ΡΠ³Π»Π°
(x2, y2). - Π¦Π²Π΅Ρ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ° (GBR/RGB Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠΉ ΡΠ²Π΅ΡΠΎΠ²ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ).
- Π’ΠΎΠ»ΡΠΈΠ½Π° Π»ΠΈΠ½ΠΈΠΈ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°.
Π ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π»ΠΈΠ½ΠΈΠΉ
Π€ΡΠ½ΠΊΡΠΈΡ line ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ 5 ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²:
- Π‘Π°ΠΌΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠΈΡΡΠ΅ΡΡΡ Π»ΠΈΠ½ΠΈΡ.
- ΠΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ° ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΠΎΡΠΊΠΈ
(x1, y1). - ΠΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ° Π²ΡΠΎΡΠΎΠΉ ΡΠΎΡΠΊΠΈ
(x2, y2). - Π¦Π²Π΅Ρ Π»ΠΈΠ½ΠΈΠΈ (GBR/RGB Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠΉ ΡΠ²Π΅ΡΠΎΠ²ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ).
- Π’ΠΎΠ»ΡΠΈΠ½Π° Π»ΠΈΠ½ΠΈΠΈ.
Π’Π΅ΠΊΡΡ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ
Π€ΡΠ½ΠΊΡΠΈΡ putText ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ 7 ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²:
- ΠΠ΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅.
- Π’Π΅ΠΊΡΡ Π΄Π»Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ.
- ΠΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ° Π½ΠΈΠΆΠ½Π΅Π³ΠΎ Π»Π΅Π²ΠΎΠ³ΠΎ ΡΠ³Π»Π° Π½Π°ΡΠ°Π»Π° ΡΠ΅ΠΊΡΡΠ°
(x, y). - ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ ΡΡΠΈΡΡ.
- Π Π°Π·ΠΌΠ΅Ρ ΡΡΠΈΡΡΠ°.
- Π¦Π²Π΅Ρ ΡΠ΅ΠΊΡΡΠ° (GBR/RGB Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠΉ ΡΠ²Π΅ΡΠΎΠ²ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ).
- Π’ΠΎΠ»ΡΠΈΠ½Π° Π»ΠΈΠ½ΠΈΠΉ Π±ΡΠΊΠ².
Π Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΠ΅ Π»ΠΈΡ
ΠΠ° ΡΡΠΎΡ ΡΠ°Π· Π±Π΅Π· ΠΏΡΡΠΈΠΊΠΎΠ².
detectMultiScale β ΠΎΠ±ΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡ ΠΊΠ°ΠΊ Π»ΠΈΡ, ΡΠ°ΠΊ ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². Π§ΡΠΎΠ±Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΈΡΠΊΠ°Π»Π° ΠΈΠΌΠ΅Π½Π½ΠΎ Π»ΠΈΡΠ°, ΠΌΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΌ Π΅ΠΉ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΊΠ°ΡΠΊΠ°Π΄.
Π€ΡΠ½ΠΊΡΠΈΡ detectMultiScale ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ 4 ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°:
- ΠΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π² Π³ΡΠ°Π΄Π°ΡΠΈΠΈ ΡΠ΅ΡΠΎΠ³ΠΎ.
- ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ
scaleFactor. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ Π»ΠΈΡΠ° ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π΄ΡΡΠ³ΠΈΡ , ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π±Π»ΠΈΠΆΠ΅, ΡΠ΅ΠΌ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅. ΠΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΊΠΎΠΌΠΏΠ΅Π½ΡΠΈΡΡΠ΅Ρ ΠΏΠ΅ΡΡΠΏΠ΅ΠΊΡΠΈΠ²Ρ. - ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠΊΠΎΠ»ΡΠ·ΡΡΠ΅Π΅ ΠΎΠΊΠ½ΠΎ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ
minNeighborsΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π²ΠΎΠΊΡΡΠ³ Π»ΠΈΡΠ°. Π’ΠΎ Π΅ΡΡΡ ΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°, ΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ, ΡΡΠΎΠ±Ρ ΠΎΠ½ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ» ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΊΠ°ΠΊ Π»ΠΈΡΠΎ. Π‘Π»ΠΈΡΠΊΠΎΠΌ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ²Π΅Π»ΠΈΡΠΈΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π»ΠΎΠΆΠ½ΡΡ ΡΡΠ°Π±Π°ΡΡΠ²Π°Π½ΠΈΠΉ, Π° ΡΠ»ΠΈΡΠΊΠΎΠΌ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΡΠ΄Π΅Π»Π°Π΅Ρ Π°Π»Π³ΠΎΡΠΈΡΠΌ Π±ΠΎΠ»Π΅Π΅ ΡΡΠ΅Π±ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠΌ. minSizeβ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΡΠ°Π·ΠΌΠ΅Ρ ΡΡΠΈΡ ΠΎΠ±Π»Π°ΡΡΠ΅ΠΉ.
Contours β ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²
Π Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ²Π΅ΡΠΎΠ²ΠΎΠΉ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π΅ΡΡΡ Π΄Π²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ: cv2.findContours ΠΈ cv2.drawContours.
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΎ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ²Π΅ΡΠΎΠ²ΠΎΠΉ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ. ΠΡΡ, ΡΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π΄Π»Ρ Π½Π΅Ρ, Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΡΠ°ΠΌ.
Π‘ΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
OpenCV β ΠΎΡΠ»ΠΈΡΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Ρ Π»ΡΠ³ΠΊΠΈΠΌΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π² 3D-ΡΠ΅Π½Π΄Π΅ΡΠ΅, ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΠΎΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ Π²ΠΈΠ΄Π΅ΠΎ, ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠΈ ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈ Π»ΡΠ΄Π΅ΠΉ Π½Π° Π²ΠΈΠ΄Π΅ΠΎ, ΠΏΠΎΠΈΡΠΊΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΈΠ· Π½Π°Π±ΠΎΡΠ° ΠΈ Π΄Π»Ρ ΠΌΠ½ΠΎΠ³ΠΎ-ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅Π³ΠΎ Π΅ΡΡ.
ΠΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΎΡΠ΅Π½Ρ Π²Π°ΠΆΠ½Π° Π΄Π»Ρ ΡΠ΅Ρ , ΠΊΡΠΎ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΠΏΡΠΎΠ΅ΠΊΡΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΠΌΠ°ΡΠΈΠ½Π½ΡΠΌ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ΠΌ Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ.