ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° OpenCV с Python

Π’ этом руководствС ΠΌΡ‹ ΡƒΠ·Π½Π°Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ OpenCV Π² Python. OpenCV – это Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, которая поддСрТиваСтся нСсколькими ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°ΠΌΠΈ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Windows, Linux ΠΈ MacOS, Π° Ρ‚Π°ΠΊΠΆΠ΅ доступна для использования Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ… языках. Однако ΠΎΠ½ Ρ‡Π°Ρ‰Π΅ всСго ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Python для ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ машинного обучСния, особСнно Π² области ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠ³ΠΎ зрСния.

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

Рассмотрим установку OpenCV Π½Π° Mac, Windows ΠΈ Linux, ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с изобраТСниями, Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΡƒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, сглаТиваниС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ гСомСтричСскиС прСобразования с использованиСм OpenCV.

Установка OpenCV Π² Python

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΡ‹ собираСмся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ OpenCV Π½Π° языкС Python, нСявно трСбуСтся, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π° вашСй Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ станции ΡƒΠΆΠ΅ Π±Ρ‹Π» установлСн Python (вСрсия 3). Π’ зависимости ΠΎΡ‚ вашСй ОБ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΎΠ΄Π½Ρƒ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ OpenCV Π² вашСй систСмС:

Windows

MacOS

Linux

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Π±Ρ‹Π»Π° Π»ΠΈ ваша установка ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π»ΠΈΠ±ΠΎ Π² ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ΅ Python, Π»ΠΈΠ±ΠΎ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС ΠΈΠ»ΠΈ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅:

Если Π²Ρ‹ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ сообщСниС ΠΎΠ± ошибкС ΠΏΡ€ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅ cv2, Π·Π½Π°Ρ‡ΠΈΡ‚, ΠΎΠ½ Π±Ρ‹Π» установлСн ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с изобраТСниями

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ установили OpenCV Π½Π° наши Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ станции, Π΄Π°Π²Π°ΠΉΡ‚Π΅ займСмся Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ функциями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ OpenCV.

ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ изобраТСния

ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ изобраТСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ OpenCV – это двухэтапный процСсс. Π‘Π½Π°Ρ‡Π°Π»Π° ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π΅Π³ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ. ОбС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ с использованиСм Ρ€Π°Π·Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

Для чтСния ΠΈΠ»ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ изобраТСния ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ cv2.imread(), ΠΈΠΌΠ΅ΡŽΡ‰ΡƒΡŽ Π΄Π²Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ – IMREAD_GRAYSCALE, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ, ΠΊΠ°ΠΊ слСдуСт ΠΈΠ· названия, ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΎΡ‚Ρ‚Π΅Π½ΠΊΠΈ сСрого ΠΏΠ΅Ρ€Π΅Π΄ Π΅Π³ΠΎ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ΠΌ. Π’Ρ‚ΠΎΡ€ΠΎΠΉ – IMREAD_UNCHANGED, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π±Π΅Π· вырСзания Π°Π»ΡŒΡ„Π°-ΠΊΠ°Π½Π°Π»Π°. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ IMREAD_COLOR просто считываСт Ρ†Π²Π΅Ρ‚Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ°Π½Π°Π»Ρ‹ RGB.

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°:

Π­Ρ‚ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ вСлосипСда ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы ΠΈ сохранит Π΅Π³ΠΎ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ my_bike для Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Если Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ сообщСниС ΠΎΠ± ошибкС ΠΈΠ· ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄Π°, это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ трСмя ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌΠΈ. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Π²Ρ‹ ΡƒΠΊΠ°Π·Π°Π»ΠΈ Π½Π΅Π²Π΅Ρ€Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ, Π²ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π²Π°ΠΌΠΈ Ρ„Π°ΠΉΠ» изобраТСния Π½Π΅ сущСствуСт, Π° Π²ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, Ρ‡Ρ‚ΠΎ Ρ‚ΠΈΠΏ изобраТСния (jpg, jpeg ΠΈ png) Π² ΠΏΡƒΡ‚ΠΈ ΠΊ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ Π½Π΅Π²Π΅Ρ€Π΅Π½.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ cv2.imshow().

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ imshow() – это имя строки, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Π² ΠΎΠΊΠ½Π΅ изобраТСния. Π’Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ – это ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ изобраТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ создали с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ cv2.imread().

Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅

Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ изобраТСния – ΠΎΡ‡Π΅Π½ΡŒ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ функция, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ измСнСния Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС для дальнСйшСго использования. OpenCV ΠΈΠΌΠ΅Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ cv2.imwrite() для сохранСния ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ.

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ имя ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ мСстополоТСниС изобраТСния. ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ автоматичСски сохраняСтся Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅.

АрифмСтичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ

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

Π₯отя сущСствуСт мноТСство ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ, ΠΌΡ‹ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ здСсь Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π²Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ это ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡŽ ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠΌ арифмСтичСским опСрациям, доступным Π² OpenCV. ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π²ΡƒΡ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Π° Π²Ρ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ смСшиваниС Π΄Π²ΡƒΡ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ.

Π”Π°Π²Π°ΠΉΡ‚Π΅ Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΡƒΠ΅ΠΌ эти Π΄Π²Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°:

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅

Команда waitKey Π±ΡƒΠ΄Π΅Ρ‚ ΠΆΠ΄Π°Ρ‚ΡŒ, ΠΏΠΎΠΊΠ° Π²Ρ‹ Π½Π°ΠΆΠΌΠ΅Ρ‚Π΅ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΎΠ½Π° ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅Ρ‚ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅. Π­Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π»Π° ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ вашС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΆΠ°Ρ‚Π° клавиша, Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС ΠΎΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Π½Π° долю сСкунды, Π° Π·Π°Ρ‚Π΅ΠΌ быстро исчСзнСт послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‚ΠΈΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅.

БмСшиваниС

БмСшиваниС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ добавлСнию ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π²ΠΊΠ»Π°Π΄ΠΎΠΌ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ изобраТСния Π² Π½ΠΎΠ²ΠΎΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰Π΅Π΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅. По сути, Ссли ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ΄Π½ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π±Ρ‹Π»ΠΎ Π±ΠΎΠ»Π΅Π΅ сфокусированным, Π° Π΄Ρ€ΡƒΠ³ΠΎΠ΅ – Π±ΠΎΠ»Π΅Π΅ тусклым ΠΏΡ€ΠΈ объСдинСнии, ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ смСшиваниС, Π° Π½Π΅ простоС Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅.

Π”Π°Π²Π°ΠΉΡ‚Π΅ Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΡƒΠ΅ΠΌ это, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡΡΠ½ΠΈΡ‚ΡŒ дальшС:

Π‘ΡƒΠΌΠΌΠ° вСсов, присвоСнных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ addWeighted, Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π²Π½Π° 1.0. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π² ΠΊΠΎΠ½Ρ†Π΅ скалярноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ ΠΊΠΎ всСм значСниям пиксСлСй ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ изобраТСния.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: изобраТСния ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ любого Ρ‚ΠΈΠΏΠ°, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌ для всСх ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. НапримСр, Ссли Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ PNG, всС изобраТСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ для вычислСний, Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ PNG.

Π‘Π³Π»Π°ΠΆΠΈΠ²Π°Π½ΠΈΠ΅

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

Допустим, Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 10Γ—10, ΠΈ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Ρ‡Π΅Ρ€Π΅Π· Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ 3Γ—3 ΠΈΠ»ΠΈ ΡƒΡΡ€Π΅Π΄Π½ΡΡŽΡ‰ΠΈΠΉ, ΠΊΠ°ΠΊ Π±Ρ‹ Π²Ρ‹ это сдСлали?

Π’Ρ‹ Π½Π°Ρ‡Π½Π΅Ρ‚Π΅ с Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ Π»Π΅Π²ΠΎΠ³ΠΎ ΡƒΠ³Π»Π° изобраТСния, помСститС Ρ‚ΡƒΠ΄Π° свой Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ 3Γ—3 ΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΉ элСмСнт срСдним Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ всСх 9 элСмСнтов. Π­Ρ‚ΠΎ Π±Ρ‹Π» ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ шаг, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ пСрСмСститС свой Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ Π½Π° ΠΎΠ΄ΠΈΠ½ шаг Π²ΠΏΡ€Π°Π²ΠΎ ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ Ρ‚ΠΎΡ‚ ΠΆΠ΅ процСсс, ΠΏΠΎΠΊΠ° Π½Π΅ ΠΏΠΎΠΊΡ€ΠΎΠ΅Ρ‚Π΅ всС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅. НиТС для справки ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ изобраТСния 10Γ—10 ΠΈ ΡƒΡΡ€Π΅Π΄Π½ΡΡŽΡ‰Π΅Π³ΠΎ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π° 3Γ—3:

ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows

Π€ΠΈΠ»ΡŒΡ‚Ρ€ примСняСтся ΠΊ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ 10Γ—10:

ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ обсудили, ΠΊΠ°ΠΊ это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΠΈ посмотрим, ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ ΠΊ Π½Π°ΡˆΠ΅ΠΌΡƒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ OpenCV. Π’Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΡ‡Ρ‚ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ, какая строка ΠΊΠΎΠ΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΊΠ°ΠΊΠΎΠ³ΠΎ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°:

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ изобраТСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄:

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ

Π­Ρ‚ΠΎ послСдняя, Π½ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· самых Π²Π°ΠΆΠ½Ρ‹Ρ… Ρ‚Π΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ собираСмся Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ OpenCV. Π£ Π½Π΅Π³ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π½ΠΎ ΠΎΠ΄Π½ΠΎ ΠΈΠ· самых распространСнных Π² настоящСС врСмя – машинноС ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ для увСличСния Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° Ρƒ вас Π½Π΅Ρ…Π²Π°Ρ‚ΠΊΠ° Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ…, Π²Ρ‹ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚Π΅ ΠΈ трансформируСтС доступныС Π² настоящСС врСмя изобраТСния, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΡ… ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΠΎΡ‚ вашСго ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ…. Π­Ρ‚ΠΎ эффСктивно ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ вашСго Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π² ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠΈ точности вашСй ΠΌΠΎΠ΄Π΅Π»ΠΈ.

Бписок Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Π°Ρ„Ρ„ΠΈΠ½Π½ΠΎΡΡ‚ΡŒ, Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅, ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΈ Ρ‚.Π΄. ΠΌΡ‹ рассмотрим Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π²Π° ΠΈΠ· Π½ΠΈΡ…, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ OpenCV, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΠ±Ρ‰Π΅Π΅ прСдставлСниС. Однако OpenCV прСдоставляСт Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для ΡˆΠΈΡ€ΠΎΠΊΠΎΠ³ΠΎ ΠΈΡ… ΠΊΡ€ΡƒΠ³Π°. НачнСм с ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ.

ΠœΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

ΠŸΡ€ΠΎΡ‰Π΅ говоря, ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ – это просто ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° вашСго изобраТСния, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π΅Π³ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΠ΅. resize – это функция, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ для ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² OpenCV. Π£ измСнСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π΅ΡΡ‚ΡŒ Ρ‚Ρ€ΠΈ Ρ‚ΠΈΠΏΠ°: INTER_CUBIC, INTER_LINEAR ΠΈ INTER_AREA. Π”Π°Π²Π°ΠΉΡ‚Π΅ Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΡƒΠ΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΉ эти Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ. ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΡ‡Ρ‚ΠΈΡ‚Π΅ ΠΊΠΎΠ΄, ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΈ описания, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ ΠΎΠ±ΡŠΡΡΠ½ΡΡ‚, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ происходит Π² ΠΊΠΎΠ΄Π΅:

Π—Π΄Π΅ΡΡŒ, Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ измСнСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ fx in прСдставляСт ΠΌΠ°ΡΡˆΡ‚Π°Π±Π½Ρ‹ΠΉ коэффициСнт для ΡˆΠΈΡ€ΠΈΠ½Ρ‹, fy прСдставляСт ΠΌΠ°ΡΡˆΡ‚Π°Π±Π½Ρ‹ΠΉ коэффициСнт ΠΏΠΎ высотС, Π° интСрполяция опрСдСляСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ (сТатиС ΠΈΠ»ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅).

Π’Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅

Π’Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ позволяСт Π½Π°ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π²ΠΎΠΊΡ€ΡƒΠ³ оси Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ ΡƒΠ³ΠΎΠ».

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

Π’ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ getRotationMatrix2D 180 ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Π° изобраТСния, 1 – коэффициСнт ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ, Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Π΅Ρ€Π½Π΅Ρ‚ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Π° Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ matrix.

Π’Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ warpAffine ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ вычислили ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, для ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Π° изобраТСния Π² соотвСтствии с нашими трСбованиями.

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

Π’ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π΅Ρ‰Π΅ Ρ€Π°Π· ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠ½Π΅ΠΌ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π°ΠΆΠ½Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ обсуТдали Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅. OpenCV – это Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, доступная Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… языках, которая Π² основном ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ вмСстС с NumPy, SciPy ΠΈ Matplotlib, ΠΊΠ°ΠΊ ΠΌΡ‹ Π²ΠΈΠ΄Π΅Π»ΠΈ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΠ· ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ². НСкоторыС ΠΈΠ· Π΅Π³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Ρ‚Π°ΠΊΠΈΠ΅ ΠΆΠ΅, ΠΊΠ°ΠΊ Π² Matlab, ΠΈ ΠΎΠ½ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ.

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

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ OpenCV Π² Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ срСду Python

ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ я ΠΏΠΎΠΊΠ°ΠΆΡƒ, ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ я Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ OpenCV Π² Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ срСду Python. Π― ΠΎΠΏΠΈΡˆΡƒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ этапы установки:

ВсС Π±Ρ‹Π»ΠΎ протСстировано Π½Π° ΠΏΠ»Π°Π½ΡˆΠ΅Ρ‚Π΅ Microsoft Surface, Windows 10 Pro, c 64-Π±ΠΈΡ‚Π½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой.

Установка OpenCV Π² Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ срСду Python

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π½Π° вашСм устройствС Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ установлСно.

Установка Python

Установка virtualenv

Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ срСда Π½Π°ΠΌ Π½ΡƒΠΆΠ½Π° для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π±Ρ‹Π»Π° своя Β«ΠΊΠΎΠΌΠ½Π°Ρ‚Π°Β» со своими вСрсиями установлСнных Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°Π²ΠΈΡΠ΅Ρ‚ΡŒ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ ΠΏΡƒΡ‚Π°Ρ‚ΡŒΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ собой.

Обновили pip, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ установим Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ срСду:
pip install virtualenv

Командой cd ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² ΠΏΠ°ΠΏΠΊΡƒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ срСду ΠΈ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:
mkdir opencvtutorial_env β€” Ρ‚Π°ΠΊ ΠΌΡ‹ создали срСду с Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ opencvtutorial_env.

Π”Π°Π»Π΅Π΅ Π²Π²ΠΎΠ΄ΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ virtualenv opencvtutorial_env ΠΈ для Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² ΠΏΠ°ΠΏΠΊΡƒ срСды ΠΈ Π΄Π°Π»Π΅Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Tab Π΄ΠΎ activate.
.\opencvtutorial_env\Scripts\activate

Установка Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ OpenCV-Python, Numpy ΠΈ Matplotlib

Они понадобятся для тСстирования Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ opencv.

Π‘Π°ΠΌΡ‹ΠΉ Π»Π΅Π³ΠΊΠΈΠΉ ΠΈ быстрый Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ установки Ρƒ мСня получился с Π½Π΅ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ вСрсии. УстанавливаСм Π΅Π³ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:
pip install opencv-python

ВСстированиС

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ всС Π»ΠΈ Ρƒ нас Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. Π’ ΠΎΡ‚ΠΊΡ€Ρ‹Π²ΡˆΠ΅ΠΌΡΡ ΠΎΠΊΠ½Π΅ создаСм Π½ΠΎΠ²Ρ‹ΠΉ Python 3 Ρ„Π°ΠΉΠ», ΠΈ запускаСм ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:
import cv2 as cv
print( cv.__version__ )

Если Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ вСрсия opencv, Ρ‚ΠΎ ΠΏΠΎΠ·Π΄Ρ€Π°Π²Π»ΡΡŽ, ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π»Ρ‹ c ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ сайта. Мои ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ€Π°Π±ΠΎΡ‚ ΠΏΠΎ Ρ‚ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π»Π°ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ здСсь.

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

НадСюсь эта ΡΡ‚Π°Ρ‚ΡŒΡ Π²Π°ΠΌ ΠΏΠΎΠΌΠΎΠ³Π»Π° ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ OpenCV Π² Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ срСду Python. Π’ΠΎΡ‚ Π΅Ρ‰Π΅ нСсколько статСй касаСмо OpenCV:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Установка OpenCV + CUDA Π½Π° Windows

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

Π’ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ Ρ€Π΅Ρ‡ΡŒ ΠΏΠΎΠΉΠ΄Π΅Ρ‚ ΠΎ сборкС ΠΈ установкС OpenCV 4 для C/C++, Python 2 ΠΈ Python 3 ΠΈΠ· исходных Ρ„Π°ΠΉΠ»ΠΎΠ² с Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ модулями CUDA 10 Π½Π° ОБ Windows.

Π― постарался Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ сюда всС тонкости ΠΈ Π½ΡŽΠ°Π½ΡΡ‹, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚ΡŒΡΡ Π² Ρ…ΠΎΠ΄Π΅ установки, ΠΈ ΠΏΡ€ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ написано Π² ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ ΠΌΠ°Π½ΡƒΠ°Π»Π΅.
ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows

Π‘Π±ΠΎΡ€ΠΊΠ° Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Π»Π°ΡΡŒ для:

Π§Ρ‚ΠΎ потрСбуСтся для установки

Π’ ΠΌΠΎΠ΅ΠΉ сборкС использовались ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ инструмСнты:

Установка

Π’Π°ΠΊ ΠΊΠ°ΠΊ установка производится Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Ρ‚ΠΎ слСдуСт Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈ Π°ΠΊΠΊΡƒΡ€Π°Ρ‚Π½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ всС шаги. Π’Π°ΠΊΠΆΠ΅, ΠΏΡ€ΠΈ нСобходимости, мСняйтС установочныС ΠΏΡƒΡ‚ΠΈ Π½Π° свои.
Для Π½Π°Ρ‡Π°Π»Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠ΅ ПО, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ Visual Studio Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ установлСна Π΄ΠΎ CUDA:

Π”Π°Π»Π΅Π΅ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌ Π°Ρ€Ρ…ΠΈΠ²Ρ‹ исходников opencv-4.1.1 ΠΈ opencv-contrib-4.1.1 Π² ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ΅ мСсто (Π² ΠΌΠΎΠ΅ΠΌ случаС это C:\OpenCV\).

ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows

Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΏΠ°ΠΏΠΊΡƒ build/ Π²Π½ΡƒΡ‚Ρ€ΠΈ opencv-4.1.1.

ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows

Π”Π°Π»Π΅Π΅ сгСнСрируСм Ρ„Π°ΠΉΠ»Ρ‹ сборки с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ cmake. ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ cmake, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ cmake-gui ΠΏΡƒΡ‚Π°Π΅Ρ‚ Ρ‚ΠΈΠΏΡ‹ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, OPENCV_PYTHON3_VERSION) ΠΈ, ΠΊΠ°ΠΊ слСдствиС, Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ„Π°ΠΉΠ»Ρ‹.

ΠžΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ консоль ΠΏΠΎ ΠΏΡƒΡ‚ΠΈ C:\OpenCV\ ΠΈ прописываСм ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Для Visual Studio 2017 Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ ΠΊΠ°ΠΊ Β«Visual Studio 15 2017 Win64Β» ΠΈ Π±Π΅Π· Ρ„Π»Π°Π³Π° -A.

Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ явно ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ питоновскиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ для python 2 ΠΈ python 3 Π½Π° случай, Ссли сборщик Π½Π΅ смоТСт Π½Π°ΠΉΡ‚ΠΈ ΠΈΡ… автоматичСски.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° NumPy Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΎΠΉ ΠΆΠ΅ разрядности, Ρ‡Ρ‚ΠΎ ΠΈ OpenCV. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ это Π»Π΅Π³ΠΊΠΎ:

ВыполняСм Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΡŽ Ρ„Π°ΠΉΠ»ΠΎΠ² сборки с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄Π»ΠΈΠ½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π½ΠΈΠΆΠ΅. ΠŸΡ€ΠΈ Π½Π΅ΡƒΠ΄Π°Ρ‡Π½ΠΎΠΉ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ ошибок послС выполнСния ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΡƒΡŽ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΡŽ слСдуСт ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ вычистив всС Ρ„Π°ΠΉΠ»Ρ‹ Π² build/ ΠΈ .cache/.

Бпустя ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ 10 ΠΌΠΈΠ½ΡƒΡ‚ Π² консолС Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ информация ΠΎ сборкС ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰ΠΈΠ΅ строки Β«Configuring doneΒ» ΠΈ Β«Generating doneΒ». ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ всю ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, особСнно Ρ€Π°Π·Π΄Π΅Π»Ρ‹ NVIDIA CUDA, Python 2, Python 3.

ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows

Π”Π°Π»Π΅Π΅ собираСм Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅. На сборку ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΉΡ‚ΠΈ нСсколько часов Π² зависимости ΠΎΡ‚ вашСго процСссора ΠΈ вСрсии Visual Studio.

ПослС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ установки создаСм ΡΠΈΡΡ‚Π΅ΠΌΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ OPENCV_DIR со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ C:\OpenCV\opencv-4.1.1\build\install\x64\vc15\bin ΠΈ Ρ‚Π°ΠΊΠΆΠ΅ добавляСм Π΅Π΅ Π² PATH.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚ΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ OpenCV с ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ CUDA Π½Π° простом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ умноТСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ†.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π½Π° Python 3

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ OpenCV, Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ.

ΠΈ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΡΠΈΡΡ‚Π΅ΠΌΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ OPENCV_DIR ΠΈ ΡƒΠ±Ρ€Π°Ρ‚ΡŒ ΠΏΡƒΡ‚ΡŒ Π΄ΠΎ OpenCV ΠΈΠ· PATH.

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

Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрСли установку OpenCV 4 для ОБ Windows 10. Π”Π°Π½Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ тСстировался Π½Π° Windows 8.1 ΠΈ Windows 10, Π½ΠΎ, Π² Ρ‚Π΅ΠΎΡ€ΠΈΠΈ, ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒΡΡ ΠΈ Π½Π° Windows 7. Π—Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ списку источников Π½ΠΈΠΆΠ΅.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

OpenCV Π² Python. Π§Π°ΡΡ‚ΡŒ 1

ΠŸΡ€ΠΈΠ²Π΅Ρ‚, Π₯Π°Π±Ρ€! Π—Π°ΠΏΡƒΡΠΊΠ°ΡŽ Ρ†ΠΈΠΊΠ» статСй ΠΏΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ OpenCV Π² Python. ΠšΠΎΠΌΡƒ интСрСсно, Π΄ΠΎΠ±Ρ€ΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ ΠΊΠ°Ρ‚!

ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

OpenCV β€” это open source Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠ³ΠΎ зрСния, которая ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для Π°Π½Π°Π»ΠΈΠ·Π°, классификации ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. Π¨ΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Ρ‚Π°ΠΊΠΈΡ… языках ΠΊΠ°ΠΊ C, C++, Python ΠΈ Java.

Установка

Π‘ΡƒΠ΄Π΅ΠΌ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Python ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° OpenCV Ρƒ вас ΡƒΠΆΠ΅ установлСны, Ссли Π½Π΅Ρ‚, Ρ‚ΠΎ Π²ΠΎΡ‚ инструкция для установки python Π½Π° windows ΠΈ Π½Π° ubuntu, установка OpenCV Π½Π° windows ΠΈ Π½Π° ubuntu.

НСмного ΠΏΡ€ΠΎ пиксСли ΠΈ Ρ†Π²Π΅Ρ‚ΠΎΠ²Ρ‹Π΅ пространства

ΠŸΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ с Ρ‚Π΅ΠΎΡ€ΠΈΠ΅ΠΉ. КаТдоС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ состоит ΠΈΠ· Π½Π°Π±ΠΎΡ€Π° пиксСлСй. ПиксСль β€” это ΡΡ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π±Π»ΠΎΠΊ изобраТСния. Если ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² Π²ΠΈΠ΄Π΅ сСтки, Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ Π² сСткС содСрТит ΠΎΠ΄ΠΈΠ½ пиксСль, Π³Π΄Π΅ Ρ‚ΠΎΡ‡ΠΊΠ΅ с ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ΠΎΠΉ ( 0, 0 ) соотвСтствуСт Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ Π»Π΅Π²Ρ‹ΠΉ ΡƒΠ³ΠΎΠ» изобраТСния. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, прСдставим, Ρ‡Ρ‚ΠΎ Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ с Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ 400×300 пиксСлСй. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ наша сСтка состоит ΠΈΠ· 400 строк ΠΈ 300 столбцов. Π’ совокупности Π² нашСм ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ Π΅ΡΡ‚ΡŒ 400*300 = 120000 пиксСлСй.

Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ пиксСли прСдставлСны двумя способами: Π² ΠΎΡ‚Ρ‚Π΅Π½ΠΊΠ°Ρ… сСрого ΠΈ Π² Ρ†Π²Π΅Ρ‚ΠΎΠ²ΠΎΠΌ пространствС RGB. Π’ изобраТСниях Π² ΠΎΡ‚Ρ‚Π΅Π½ΠΊΠ°Ρ… сСрого ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ пиксСль ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ 0 ΠΈ 255, Π³Π΄Π΅ 0 соотвСтствуСт Ρ‡Ρ‘Ρ€Π½ΠΎΠΌΡƒ, Π° 255 соотвСтствуСт Π±Π΅Π»ΠΎΠΌΡƒ. А значСния ΠΌΠ΅ΠΆΠ΄Ρƒ 0 ΠΈ 255 ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΎΡ‚Ρ‚Π΅Π½ΠΊΠΈ сСрого, Π³Π΄Π΅ значСния Π±Π»ΠΈΠΆΠ΅ ΠΊ 0 Π±ΠΎΠ»Π΅Π΅ Ρ‚Ρ‘ΠΌΠ½Ρ‹Π΅, Π° значСния Π±Π»ΠΈΠΆΠ΅ ΠΊ 255 Π±ΠΎΠ»Π΅Π΅ свСтлыС:

ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows

Π¦Π²Π΅Ρ‚Π½Ρ‹Π΅ пиксСли ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ прСдставлСны Π² Ρ†Π²Π΅Ρ‚ΠΎΠ²ΠΎΠΌ пространствС RGB(red, green, blue β€” красный, Π·Π΅Π»Ρ‘Π½Ρ‹ΠΉ, синий), Π³Π΄Π΅ ΠΎΠ΄Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для красной ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, ΠΎΠ΄Π½ΠΎ для Π·Π΅Π»Ρ‘Π½ΠΎΠΉ ΠΈ ΠΎΠ΄Π½ΠΎ для синСй. КаТдая ΠΈΠ· Ρ‚Ρ€Ρ‘Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ прСдставлСна Ρ†Π΅Π»Ρ‹ΠΌ числом Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ‚ 0 Π΄ΠΎ 255 Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠ°ΠΊ Β«ΠΌΠ½ΠΎΠ³ΠΎΒ» Ρ†Π²Π΅Ρ‚Π° содСрТится. Π˜ΡΡ…ΠΎΠ΄Ρ ΠΈΠ· Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ каТдая ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° прСдставлСна Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ [0,255], Ρ‚ΠΎ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π½Π°ΡΡ‹Ρ‰Π΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ†Π²Π΅Ρ‚Π°, Π½Π°ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ достаточно 8-Π±ΠΈΡ‚Π½ΠΎΠ³ΠΎ Ρ†Π΅Π»ΠΎΠ³ΠΎ Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ³ΠΎ числа. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ объСдиняСм значСния всСх Ρ‚Ρ€Ρ‘Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π² ΠΊΠΎΡ€Ρ‚Π΅ΠΆ Π²ΠΈΠ΄Π° (красный, Π·Π΅Π»Π΅Π½Ρ‹ΠΉ, синий). К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π±Π΅Π»Ρ‹ΠΉ Ρ†Π²Π΅Ρ‚, каТдая ΠΈΠ· ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π΄ΠΎΠ»ΠΆΠ½Π° Ρ€Π°Π²Π½ΡΡ‚ΡŒΡΡ 255: (255, 255, 255). Π’ΠΎΠ³Π΄Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‡Ρ‘Ρ€Π½Ρ‹ΠΉ Ρ†Π²Π΅Ρ‚, каТдая ΠΈΠ· ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π²Π½ΠΎΠΉ 0: (0, 0, 0). НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ распространённыС Ρ†Π²Π΅Ρ‚Π°, прСдставлСнныС Π² Π²ΠΈΠ΄Π΅ RGB ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅ΠΉ:
ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows

Π˜ΠΌΠΏΠΎΡ€Ρ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ OpenCV

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Ρ‘ΠΌ ΠΊ практичСской части. ΠŸΠ΅Ρ€Π²ΠΎΠ΅, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ β€” это ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ. Π•ΡΡ‚ΡŒ нСсколько ΠΏΡƒΡ‚Π΅ΠΉ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°, самый распространённый β€” это ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅:

Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡ‚Ρ€Π΅Ρ‚ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ для ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° Π΄Π°Π½Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ:

Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ°, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈ сохранСниС изобраТСния

Для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ изобраТСния ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ cv2.imread(), Π³Π΄Π΅ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ указываСтся ΠΏΡƒΡ‚ΡŒ ΠΊ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ, Π° Π²Ρ‚ΠΎΡ€Ρ‹ΠΌ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ, ΠΌΡ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ, Π² ΠΊΠ°ΠΊΠΎΠΌ Ρ†Π²Π΅Ρ‚ΠΎΠ²ΠΎΠΌ пространствС ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ нашС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² RGB β€” cv2.IMREAD_COLOR, Π² ΠΎΡ‚Ρ‚Π΅Π½ΠΊΠ°Ρ… сСрого β€” cv2.IMREAD_GRAYSCALE. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π΄Π°Π½Π½Ρ‹ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ cv2.IMREAD_COLOR. Данная функция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ 2D (для изобраТСния Π² ΠΎΡ‚Ρ‚Π΅Π½ΠΊΠ°Ρ… сСрого) Π»ΠΈΠ±ΠΎ 3D (для Ρ†Π²Π΅Ρ‚Π½ΠΎΠ³ΠΎ изобраТСния) массив NumPy. Π€ΠΎΡ€ΠΌΠ° массива для Ρ†Π²Π΅Ρ‚Π½ΠΎΠ³ΠΎ изобраТСния: высота x ΡˆΠΈΡ€ΠΈΠ½Π° x 3, Π³Π΄Π΅ 3 β€” это Π±Π°ΠΉΡ‚Ρ‹, ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ Π±Π°ΠΉΡ‚Ρƒ Π½Π° ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΈΠ· ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚. Π’ изобраТСниях Π² ΠΎΡ‚Ρ‚Π΅Π½ΠΊΠ°Ρ… сСрого всё Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ‰Π΅: высота x ΡˆΠΈΡ€ΠΈΠ½Π°.

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ cv2.imshow() ΠΌΡ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° нашСм экранС. Π’ качСствС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‘ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ нашСго ΠΎΠΊΠ½Π°, Π° Π²Ρ‚ΠΎΡ€Ρ‹ΠΌ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΡ‹ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠ»ΠΈ с диска, ΠΎΠ΄Π½Π°ΠΊΠΎ, Ссли ΠΌΡ‹ Π΄Π°Π»Π΅Π΅ Π½Π΅ ΡƒΠΊΠ°ΠΆΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ cv2.waitKey(), Ρ‚ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎ закроСтся. Данная функция останавливаСт Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π΄ΠΎ наТатия клавиши, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ. Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ любая клавиша Π±Ρ‹Π»Π° засчитана пСрСдаётся 0. Π‘Π»Π΅Π²Π° прСдставлСно ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΎΡ‚Ρ‚Π΅Π½ΠΊΠ°Ρ… сСрого, Π° справа Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ RGB:

ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows

И, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ cv2.imwrite() записываСм ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² Ρ„Π°ΠΉΠ» Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ jpg(данная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ всС популярныС Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ:png, tiff,jpeg,bmp ΠΈ Ρ‚. Π΄., поэтому ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ нашС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² любом ΠΈΠ· этих Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ²), Π³Π΄Π΅ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ пСрСдаётся нСпосрСдствСнно само Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅, Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ.

Доступ ΠΊ пиксСлям ΠΈ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠΌΠΈ

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ высоту, ΡˆΠΈΡ€ΠΈΠ½Ρƒ ΠΈ количСство ΠΊΠ°Π½Π°Π»ΠΎΠ² Ρƒ изобраТСния ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ shape:

Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρƒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² ΠΎΡ‚Ρ‚Π΅Π½ΠΊΠ°Ρ… сСрого img.shape[2] Π±ΡƒΠ΄Π΅Ρ‚ нСдоступно, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π΄Π°Π½Π½Ρ‹Π΅ изобраТСния прСдставлСны Π² Π²ΠΈΠ΄Π΅ 2D массива.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ пиксСля, Π½Π°ΠΌ просто Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ x ΠΈ y пиксСля, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ нас интСрСсуСт. Π’Π°ΠΊΠΆΠ΅ Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° OpenCV Ρ…Ρ€Π°Π½ΠΈΡ‚ ΠΊΠ°Π½Π°Π»Ρ‹ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° RGB Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ порядкС, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ ΠΌΡ‹ Π΄ΡƒΠΌΠ°Π΅ΠΌ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ… красного, Π·Π΅Π»Π΅Π½ΠΎΠ³ΠΎ ΠΈ синСго, Ρ‚ΠΎ OpenCV Ρ…Ρ€Π°Π½ΠΈΡ‚ ΠΈΡ… Π² порядкС синСго, Π·Π΅Π»Π΅Π½ΠΎΠ³ΠΎ ΠΈ красного Ρ†Π²Π΅Ρ‚ΠΎΠ²:

CΠ½Π°Ρ‡Π°Π»Π° ΠΌΡ‹ Π±Π΅Ρ€Ρ‘ΠΌ пиксСль, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ располоТСн Π² Ρ‚ΠΎΡ‡ΠΊΠ΅ (0,0). Π”Π°Π½Π½Ρ‹ΠΉ пиксСль, Π΄Π° ΠΈ любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ пиксСль, прСдставлСны Π² Π²ΠΈΠ΄Π΅ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ°. Π—Π°ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… располоТСны Π² порядкС b, g ΠΈ r. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ строкС Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ°Π½Π°Π»Π° Π½Π° экран. Как ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, доступ ΠΊ значСниям пиксСлСй довольно прост, Ρ‚Π°ΠΊΠΆΠ΅ просто ΠΌΠΎΠΆΠ½ΠΎ ΠΈ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ значСниями пиксСлСй:

Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΉ строкС ΠΌΡ‹ устанавливаСм Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ пиксСля (0, 0) Ρ€Π°Π²Π½Ρ‹ΠΌ (255, 0, 0), Π·Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ снова Π±Π΅Ρ€Ρ‘ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ пиксСля ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π΅Π³ΠΎ Π½Π° экран, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΌΠ½Π΅ Π½Π° консоль Π²Ρ‹Π²Π΅Π»ΠΎΡΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

На этом Ρƒ нас ΠΊΠΎΠ½Π΅Ρ† ΠΏΠ΅Ρ€Π²ΠΎΠΉ части. Если Π²Π΄Ρ€ΡƒΠ³ ΠΊΠΎΠΌΡƒ-Ρ‚ΠΎ Π½ΡƒΠΆΠ΅Π½ исходный ΠΊΠΎΠ΄ ΠΈ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ°, Ρ‚ΠΎ Π²ΠΎΡ‚ ссылка Π½Π° github. ВсСм спасибо Π·Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅!

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ OpenCV для Python Π² Windows?

OpenCV β€” это огромная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ для ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠ³ΠΎ зрСния, машинного обучСния ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠ½Π° ΠΈΠ³Ρ€Π°Π΅Ρ‚ Π²Π°ΠΆΠ½ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ Π² Ρ€Π°Π±ΠΎΡ‚Π΅ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Ρ‡Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎ Π² соврСмСнных систСмах. Π‘ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ изобраТСния ΠΈ Π²ΠΈΠ΄Π΅ΠΎ для ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Π»ΠΈΡ† ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΠΏΠΎΡ‡Π΅Ρ€ΠΊΠ° Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°. ΠŸΡ€ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ Numpuy, python ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ структуру массива OpenCV для Π°Π½Π°Π»ΠΈΠ·Π°. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ изобраТСния ΠΈ Π΅Π³ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΎΠ΅ пространство ΠΈ выполняСм матСматичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с этими элСмСнтами.

Для установки OpenCV Π² систСмС Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ установлСны Python ΠΈ PIP. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Π΅ΡΡ‚ΡŒ Π»ΠΈ Π² вашСй систСмС Python, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ инструкции:

ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку (Π½Π°ΠΉΠ΄ΠΈΡ‚Π΅ cmd Π² Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ Β«Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒΒ» (win + R).
Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

Если Python ΡƒΠΆΠ΅ установлСн, ΠΎΠ½ выдаст сообщСниС с доступной вСрсиСй Python.

ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows

PIP β€” это систСма управлСния ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ для установки ΠΈ управлСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ / Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ, написанными Π½Π° Python. Π­Ρ‚ΠΈ Ρ„Π°ΠΉΠ»Ρ‹ хранятся Π² большом Β«ΠΎΠ½Π»Π°ΠΉΠ½ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈΒ», Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΌ индСксом ΠΏΠ°ΠΊΠ΅Ρ‚Π° Python (PyPI).
Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, установлСн Π»ΠΈ PIP Π² вашСй систСмС, просто ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows

Π‘ΠΊΠ°Ρ‡ΠΈΠ²Π°Π½ΠΈΠ΅ ΠΈ установка OpenCV:

OpenCV ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ pip (диспСтчСра ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²). Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ OpenCV, просто ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку ΠΈ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ opencv python Π½Π° windows

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π»ΠΈ установлСн OpenCV, просто Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ вСрсии:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *