πŸ” Как Π½Π°ΠΉΡ‚ΠΈ отличия Π½Π° Π΄Π²ΡƒΡ… ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ°Ρ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python

Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ отличия Π½Π° Π΄Π²ΡƒΡ… ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ°Ρ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ OpenCV. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°:


import cv2

# Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΊ
image1 = cv2.imread('ΠΏΡƒΡ‚ΡŒ_ΠΊ_ΠΏΠ΅Ρ€Π²ΠΎΠΉ_ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅')
image2 = cv2.imread('ΠΏΡƒΡ‚ΡŒ_ΠΊ_Π²Ρ‚ΠΎΡ€ΠΎΠΉ_ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅')

# ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΊ Π² Π³Ρ€Π°Π΄Π°Ρ†ΠΈΠΈ сСрого
gray1 = cv2.cvtColor(image1, cv2.COLOR_BGR2GRAY)
gray2 = cv2.cvtColor(image2, cv2.COLOR_BGR2GRAY)

# ВычислСниС разности ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ°ΠΌΠΈ
diff = cv2.absdiff(gray1, gray2)

# ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΡ€ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ значСния для выдСлСния ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΉ
_, threshold = cv2.threshold(diff, 30, 255, cv2.THRESH_BINARY)

# Поиск ΠΊΠΎΠ½Ρ‚ΡƒΡ€ΠΎΠ²
contours, _ = cv2.findContours(threshold, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

# ΠžΡ‚Ρ€ΠΈΡΠΎΠ²ΠΊΠ° ΠΊΠΎΠ½Ρ‚ΡƒΡ€ΠΎΠ² Π½Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅
cv2.drawContours(image2, contours, -1, (0, 0, 255), 2)

# ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ²
cv2.imshow('Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚', image2)
cv2.waitKey(0)
cv2.destroyAllWindows()
    

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

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚

Как Π½Π°ΠΉΡ‚ΠΈ отличия Π½Π° Π΄Π²ΡƒΡ… ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ°Ρ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python

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

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

ΠŸΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΊ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΊ, Π½Π°ΠΌ понадобятся Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Python. Π’ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ OpenCV ΠΈ numpy для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Π° Ρ‚Π°ΠΊΠΆΠ΅ matplotlib для отобраТСния Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ².

        
import cv2
import numpy as np
import matplotlib.pyplot as plt
        
    

Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΈ ΠΏΡ€Π΅Π΄ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΊ

ΠŸΡ€Π΅ΠΆΠ΄Π΅ всСго, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π΄Π²Π΅ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ. Для удобства Π΄Π°Π΄ΠΈΠΌ ΠΈΠΌ ΠΈΠΌΠ΅Π½Π° "image1.jpg" ΠΈ "image2.jpg". Π’ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ cv2.imread() ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ OpenCV, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ изобраТСния.

        
image1 = cv2.imread("image1.jpg")
image2 = cv2.imread("image2.jpg")
        
    

Часто Π±Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ изобраТСния, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Ρ€Π°Ρ‚ΡŒ ΡˆΡƒΠΌ ΠΈΠ»ΠΈ Π²Ρ‹Ρ€ΠΎΠ²Π½ΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Ρ€Π°ΡΡ‚Π½ΠΎΡΡ‚ΡŒ. Π’ нашСм случаС ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ cv2.cvtColor() для прСобразования ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² ΠΎΡ‚Ρ‚Π΅Π½ΠΊΠΈ сСрого.

        
gray_image1 = cv2.cvtColor(image1, cv2.COLOR_BGR2GRAY)
gray_image2 = cv2.cvtColor(image2, cv2.COLOR_BGR2GRAY)
        
    

ВычислСниС Ρ€Π°Π·Π½ΠΈΡ†Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ°ΠΌΠΈ

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

        
diff = cv2.absdiff(gray_image1, gray_image2)
        
    

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ яркими Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π΄Π΅Π»Π΅Π½Ρ‹ мСста, Π³Π΄Π΅ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ°ΠΌΠΈ наибольшая.

ΠŸΠΎΡ€ΠΎΠ³ΠΎΠ²Π°Ρ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ‚ΡƒΡ€ΠΎΠ²

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ дальнСйший Π°Π½Π°Π»ΠΈΠ·, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΠΎΡ€ΠΎΠ³ΠΎΠ²ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΊ Ρ€Π°Π·Π½ΠΈΡ†Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ°ΠΌΠΈ. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π½Π°ΠΌ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ яркиС Ρ‚ΠΎΡ‡ΠΊΠΈ, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ Π½Π° отличия.

        
_, threshold = cv2.threshold(diff, 30, 255, cv2.THRESH_BINARY)
        
    

ПослС примСнСния ΠΏΠΎΡ€ΠΎΠ³ΠΎΠ²ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΉΡ‚ΠΈ ΠΊΠΎΠ½Ρ‚ΡƒΡ€Ρ‹ Π½Π° ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ cv2.findContours().

        
contours, _ = cv2.findContours(threshold, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
        
    

ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ²

Для Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚ΡƒΡ€Ρ‹ Π½Π° исходных ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ°Ρ… с использованиСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ cv2.drawContours().

        
result1 = cv2.drawContours(image1, contours, -1, (0, 255, 0), 2)
result2 = cv2.drawContours(image2, contours, -1, (0, 255, 0), 2)
        
    

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ исходныС ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π² ΠΎΠΊΠ½Π°Ρ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ plt.imshow().

        
plt.subplot(2, 2, 1), plt.imshow(image1), plt.title('Π˜ΡΡ…ΠΎΠ΄Π½Π°Ρ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 1')
plt.subplot(2, 2, 2), plt.imshow(result1), plt.title('Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ 1')
plt.subplot(2, 2, 3), plt.imshow(image2), plt.title('Π˜ΡΡ…ΠΎΠ΄Π½Π°Ρ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 2')
plt.subplot(2, 2, 4), plt.imshow(result2), plt.title('Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ 2')

plt.show()
        
    

Π’Ρ‹Π²ΠΎΠ΄

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

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

Python. ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ print() input()

Π£Ρ‡ΠΈΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Ρ‚ΡŒ тСкст Π½Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ°Ρ…, Π²ΠΈΠ΄Π΅ΠΎ, ΠΈΠ³Ρ€Π°Ρ… β–² Python + OpenCV + Tesseract

РаспознаваниС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° Python | Поиск ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ | TensorFlow, PixelLib

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

Как Π½Π°ΠΉΡ‚ΠΈ минимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² словарС ΠΏΠΈΡ‚ΠΎΠ½? πŸ”

Как ΠΈΠ· слова ΡΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ список Π±ΡƒΠΊΠ² Π² Python 🐍

Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ else Π² Python? πŸπŸ” Π”Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅ объяснСниС Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова

πŸ” Как Π½Π°ΠΉΡ‚ΠΈ отличия Π½Π° Π΄Π²ΡƒΡ… ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ°Ρ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python

πŸ’‘ΠŸΠΎΡ‡Π΅ΠΌΡƒ язык программирования называСтся ΠŸΠΈΡ‚ΠΎΠ½? ΠžΡ‚Π²Π΅Ρ‚Ρ‹ ΠΈ интСрСсныС Ρ„Π°ΠΊΡ‚Ρ‹!

Как ΠΎΠΊΡ€ΡƒΠ³Π»ΠΈΡ‚ΡŒ число Π΄ΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ количСства Π·Π½Π°ΠΊΠΎΠ² послС запятой Π² Python?

πŸ”₯ Насколько популярСн Python Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ: статистика ΠΈ Ρ‚Ρ€Π΅Π½Π΄Ρ‹ Π² 2021