Apakah mungkin untuk mendapatkan warna RGB dari sebuah piksel menggunakan PIL? Saya menggunakan kode ini:
im = Image.open("image.gif")
pix = im.load()
print(pix[1,1])
Namun, itu hanya mengeluarkan angka (misalnya 0
atau 1
) dan bukan tiga angka (misalnya 60,60,60
untuk R, G, B). Saya kira saya tidak memahami sesuatu tentang fungsinya. Saya ingin penjelasan.
Terima kasih banyak.
GIF menyimpan warna sebagai salah satu dari x jumlah kemungkinan warna dalam palet. Baca tentang palet warna terbatas gif . Jadi PIL memberi Anda indeks palet, bukan informasi warna dari warna palet itu.
Edit: Tautan yang dihapus ke solusi posting blog yang salah ketik. Jawaban lain melakukan hal yang sama tanpa salah ketik.
sumber
Alternatif untuk mengonversi gambar adalah dengan membuat indeks RGB dari palet.
sumber
Bukan PIL, tapi
imageio.imread
mungkin masih menarik:memberi
jadi (tinggi, lebar, saluran). Jadi pixel pada posisi
(x, y)
iniUsang
scipy.misc.imread
tidak digunakan lagi di SciPy 1.0.0 (terima kasih atas pengingatnya, fbahr !)sumber
scipy.misc.imread
tidak digunakan lagi!imread
tidak digunakan lagi di SciPy 1.0.0, dan akan dihapus di 1.2.0. Gunakanimageio.imread
sebagai gantinya.Dengan numpy:
Berikan vektor RGB dari piksel pada posisi (0,0)
sumber