🎨 Как ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ†Π²Π΅Ρ‚ пиксСля Π² ΠŸΠΈΡ‚ΠΎΠ½Π΅: простоС ΠΈ эффСктивноС руководство πŸ–₯️

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ†Π²Π΅Ρ‚ пиксСля Π² Python, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Pillow. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°:


from PIL import Image

# ΠžΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅
image = Image.open("image.jpg")

# ИзмСняСм Ρ†Π²Π΅Ρ‚ пиксСля Π½Π° красный (255, 0, 0)
image.putpixel((x, y), (255, 0, 0))

# БохраняСм ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅
image.save("output.jpg")
    

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

Как ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ†Π²Π΅Ρ‚ пиксСля Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅

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

1. ИспользованиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ PIL (Python Imaging Library)

Одной ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ популярных Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с изобраТСниями Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ являСтся PIL. Для Π½Π°Ρ‡Π°Π»Π° установим Π΅Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:


        pip install Pillow
    

Π—Π°Π³Ρ€ΡƒΠ·ΠΈΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π±ΡƒΠ΄Π΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ open ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ PIL:


        from PIL import Image

        image = Image.open("image.jpg")
    

Π”Π°Π»Π΅Π΅, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ пиксСлям изобраТСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ load():


        pixel = image.load()
    

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ†Π²Π΅Ρ‚ пиксСля, просто Π·Π°Π΄Π°ΠΉΡ‚Π΅ Π½ΠΎΠ²Ρ‹Π΅ значСния красного, Π·Π΅Π»Π΅Π½ΠΎΠ³ΠΎ ΠΈ синСго ΠΊΠ°Π½Π°Π»ΠΎΠ². НапримСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ пиксСль красным, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄:


        x = 100
        y = 200

        pixel[x, y] = (255, 0, 0)  # Новый Ρ†Π²Π΅Ρ‚ RGB: (255, 0, 0)
    

ПослС внСсСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅:


        image.save("new_image.jpg")
    

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ Ρ†Π²Π΅Ρ‚ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ пиксСля измСнился Π½Π° красный.

2. ИспользованиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ OpenCV

Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ популярный инструмСнт для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с изобраТСниями Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ - OpenCV. УстановитС Π΅Π³ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:


        pip install opencv-python
    

Π—Π°Π³Ρ€ΡƒΠ·ΠΈΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ imread ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ OpenCV:


        import cv2

        image = cv2.imread("image.jpg")
    

Для измСнСния Ρ†Π²Π΅Ρ‚Π° пиксСля Π² OpenCV ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ itemset:


        x = 100
        y = 200

        image.itemset((x, y, 0), 255)  # Канал синСго Ρ†Π²Π΅Ρ‚Π°
        image.itemset((x, y, 1), 0)    # Канал Π·Π΅Π»Π΅Π½ΠΎΠ³ΠΎ Ρ†Π²Π΅Ρ‚Π°
        image.itemset((x, y, 2), 0)    # Канал красного Ρ†Π²Π΅Ρ‚Π°
    

Подобно Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ PIL, послС внСсСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅:


        cv2.imwrite("new_image.jpg", image)
    

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ пиксСль Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ Ρ†Π²Π΅Ρ‚.

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

ИзмСнСниС Ρ†Π²Π΅Ρ‚Π° пиксСля Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ достигнуто с использованиСм Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ². Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрСли Π΄Π²Π΅ популярныС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ - PIL ΠΈ OpenCV - ΠΈ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ, ΠΊΠ°ΠΊ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ†Π²Π΅Ρ‚ пиксСля Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· Π½ΠΈΡ…. Π’Π°ΠΌ остаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ подходящий инструмСнт ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² своих ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ….

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

[Python] OpenCV. РаспознаваниС Ρ†Π²Π΅Ρ‚Π°. Π Π°Π±ΠΎΡ‚Π° с событиями ΠΌΡ‹ΡˆΠΈ

Π‘ΠΌΠ΅Π½Π° Ρ†Π²Π΅Ρ‚Π° тСкста ΠΈ Ρ„ΠΎΠ½Π° Π² python (ΠΏΠΈΡ‚ΠΎΠ½) | ΠœΠΎΠ΄ΡƒΠ»ΡŒ colorama python

Π£Ρ€ΠΎΠΊΠΈ Python / ΠœΠΎΠ΄ΡƒΠ»ΡŒ tkinter (Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Ρ†Π²Π΅Ρ‚ picker)

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

πŸ” Как ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· массива Python? 🐍 Π£Π·Π½Π°ΠΉΡ‚Π΅ простыС способы удалСния элСмСнтов!

🧹 Как ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» Python: простыС способы ΠΈ ΠΎΠ±Π·ΠΎΡ€ инструмСнтов

πŸ” Как ΡΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ строки Π² Python? 🐍 ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ ΠΈ понятный Π³Π°ΠΉΠ΄

🎨 Как ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ†Π²Π΅Ρ‚ пиксСля Π² ΠŸΠΈΡ‚ΠΎΠ½Π΅: простоС ΠΈ эффСктивноС руководство πŸ–₯️

πŸ”Œ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΠΈΡ‚ΠΎΠ½ ΠΊ ΠŸΠ°ΠΉΡ‡Π°Ρ€ΠΌΡƒ: пошаговая инструкция

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ PEP 8 Π² ΠŸΠΈΡ‚ΠΎΠ½Π΅: ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° оформлСния ΠΊΠΎΠ΄Π°

Π§Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚ слово ΠΏΠΈΡ‚ΠΎΠ½ ΠΈ Π·Π°Ρ‡Π΅ΠΌ ΠΎΠ½ΠΎ Π½ΡƒΠΆΠ½ΠΎ? 🐍