Ich verwende vier Eingänge für meine Funktion: ein Bildobjekt, X-Koordinate, Y-Koordinate und die Höhe/Breite des Quadrats. Ich möchte alle Rot-, Grün- und Blauwerte des Bildes separat mitteln. Ich habe Probleme mit den Akkumulatorvariablen der RGB-Pixel und überprüfe die Grenzen des Quadrats. Kann mir jemand helfen?Python durchschnittliche Farbe über quadratischen Bereich
from imageTools import *
p1 = makePicture("flower.jpg")
def averageColor(pic, xCord, yCord, width):
rAcc = 0
gAcc = 0
bAcc = 0
for x in range(xCord, xCord + width):
for y in range(yCord, yCord + width):
picWidth = getWidth(pic)
picHeight = getHeight(pic)
if x <= picWidth and y <= picHeight:
pixel = getPixel(pic, xCord, yCord)
r = getRed(pixel)
g = getGreen(pixel)
b = getBlue(pixel)
rAcc = rAcc + 1
gAcc = gAcc + 1
bAcc = bAcc + 1
avgRed = r/rAcc
avgGreen = g/gAcc
avgBlue = b/bAcc
newColor = makeColor(avgRed, avgGreen, avgBlue)
return newColor
col1 = averageColor(p1, 0, 150, 100)
print(col1)
sind nicht die Summe der 'r',' g' und 'b' Werte r + = getRed (Pixel) 'und so weiter ... –
Erhalten Sie irgendeine Art von Fehler? Sie geben den Pixelwert für jedes Pixel an "r", "g" und "b" und führen am Ende nur eine Berechnung durch? –
Ich möchte nicht den Durchschnitt der rg und b Werte, ich möchte eine neue Farbe mit der durchschnittlichen Farbe über die Region –