Wie kann ich mit PIL den Farbwert eines Pixels auslesen?
Mit getpixel kommt ich nicht weiter

Birne94 hat geschrieben: Wie kann ich mit PIL den Farbwert eines Pixels auslesen?
Mit getpixel kommt ich nicht weiter
Code: Alles auswählen
import Image
img = Image.open('bild.png')
img.getpixel((17, 42))
Code: Alles auswählen
assert img.mode == 'P'
index = img.getpixel((1,1))
r, g, b = img.getpalette()[index * 3:index * 3 + 3]
# oder eben
r, g, b = img.convert('RGB').getpixel((1,1))
Code: Alles auswählen
from PIL import Image
import Image
im = Image.open('c:/test.jpg')
im.getpixel((x,y))
Code: Alles auswählen
import Image, ImageOps
from os import listdir
from string import rfind
imgfolder = 'Images'
channelfolder = 'img_channels'
channels = ['R', 'G', 'B']
for image in listdir(imgfolder):
Imgfile = Image.open(imgfolder+'\\'+image)
img_channels = Imgfile.split()
c = 0
img_name = image[:rfind(image, '.')]
img_type = image[rfind(image, '.') +1:]
for channel in img_channels:
ch_name = channels[c]
if ch_name == 'R':
color = (255,0,0)
elif ch_name == 'G':
color = (0,255,0)
elif ch_name == 'B':
color = (0,0,255)
ImageOps.colorize(channel, (0,0,0),color).save(channelfolder+'\\'+img_name+ch_name+'_color.'+img_type, 'JPEG')
channel.save(channelfolder+'\\'+img_name+ch_name+'_grey.'+img_type, 'JPEG')
c += 1
Code: Alles auswählen
import Image
import ImageStat
im = Image.open('test.jpg')
stat = ImageStat.Stat(im)
print stat.mean
Code: Alles auswählen
import Image
import ImageStat
im = Image.open('c:/test.jpg')
mask = Image.open('c:/test_mask.bmp')
# Maske muss gleiche Größe wie das Originalbild haben und im Modus 1 oder L abgespeichert sein
# alle Pixel, die in der Maske ungleich null sind, werden dabei im Original ausgewertet
stat = ImageStat.Stat(im,mask)
# ohne Verwendung der Maske: "stat = ImageStat.Stat(im)"
print stat.mean