Untuk sampai ke algoritma pemrosesan yang kompleks, ada baiknya menganalisis skema standar, yang saya sarankan untuk mulai.
Untuk memproses contoh, gambar dengan set warna yang berbeda akan digunakan:

Untuk memulai, kita membutuhkan dua modul perpustakaan:
from PIL import Image, ImageDraw
Siapkan alat untuk pekerjaan yang nyaman di masa depan:
image = Image.open('test.jpg')
Mari kita mulai
Kami akan memproses gambar dalam format RGB. PIL juga mendukung bekerja dengan format 1, L, P, RGB, RGBA, CMYK, YCbCr, LAB, HSV, I, F.
Nilai piksel dalam gambar diatur dalam format:
(x, y), (merah, hijau, biru) , di mana
x, y adalah koordinat, dan nilai numerik RGB berada dalam kisaran 0 hingga 255. Artinya, kami bekerja dengan gambar
8-bit. Skala abu-abu
Rona abu-abu muncul dalam kasus persamaan semua palet warna, jadi kita perlu mendapatkan nilai rata-rata aritmatika dalam ketiga poin:
for x in range(width): for y in range(height): r = pix[x, y][0]

Nuansa sedikitMata manusia merasakan spektrum warna yang berbeda dengan cara yang berbeda. Tidak ada yang akan memberi Anda formula yang tepat, karena persepsi warna berbeda untuk setiap orang, tetapi jika Anda tertarik, Anda dapat membaca lebih lanjut di
sini dan di
sini .
Pembalikan
Pembalikan diperoleh dengan mengurangi warna saat ini dari 255:
for x in range(width): for y in range(height): r = pix[x, y][0] g = pix[x, y][1] b = pix[x, y][2] draw.point((x, y), (255 - r, 255 - g, 255 - b))

Inversi Grayscale
Menggabungkan dua algoritma sebelumnya, Anda dapat menulis kode berikut:
for x in range(width): for y in range(height): r = pix[x, y][0] g = pix[x, y][1] b = pix[x, y][2] sr = (r + g + b) // 3 draw.point((x, y), (255 - sr, 255 - sr, 255 - sr))

Inversi Grayscale Selektif
Untuk algoritme ini, Anda perlu menentukan nilai ambang, yang akan saya ambil untuk 100:
for x in range(width): for y in range(height): r = pix[x, y][0] g = pix[x, y][1] b = pix[x, y][2] if (r+g+b)>100:

Kesimpulan
Dalam artikel berikut, saya ingin berbicara tentang cara pendekatan penyaringan gambar secara lebih lokal dengan membaginya menjadi beberapa area, serta menunjukkan kemungkinan
DFS yang menarik dalam algoritme pemrosesan gambar