2017-09-29 5 views
0

Ich möchte den Weißabgleich eines ganzen Bildes ändern, indem ich die Durchschnittsfarben von Pixeln in einem Bereich benutze, der durch Benutzereingaben bestimmt wird. Ich verwende die Variablen startX, endX, startY und endY.Farbmittelwerte innerhalb eines bestimmten Bereichs

Ich habe es geschafft, es von einer einzelnen Pixelkoordinate zu tun, aber nicht von einem gemittelten Wert der Pixel innerhalb des Bereichs. greyValue ist, wo ich stecken bleibe, weil ich nicht weiß, wie man den Farbdurchschnitt zurückbringt.

def whiteBalanceBonus(): 
    File=pickAFile() 
    myPict=makePicture(File) 
    startX=requestInteger("Enter the value of the first 'X' Coordinate in the range") 
    startY=requestInteger("Enter the value of the first 'Y' Coordinate in the range") 
    endX=requestInteger("Enter the value of the last 'X' Coordinate in the range") 
    endY=requestInteger("Enter the value of the last 'Y' Coordinate in the range") 
    for x in range(startX,endX): 
    for y in range(startY,endY): 
     pixel=getPixel(myPict,x,y) 
     greyValue= 

Antwort

0

nie Verstand es gelöst :)

def whiteBalanceBonus(): 
    File=pickAFile() 
    myPict=makePicture(File) 
    startX=requestInteger("Enter the value of the first 'X' Coordinate in the range") 
    startY=requestInteger("Enter the value of the first 'Y' Coordinate in the range") 
    endX=requestInteger("Enter the value of the last 'X' Coordinate in the range") 
    endY=requestInteger("Enter the value of the last 'Y' Coordinate in the range") 
    for x in range(startX,endX): 
    for y in range(startY,endY): 
     pixels=getPixel(myPict,x,y) 
     greyValue=(getRed(pixels)+getGreen(pixels)+getBlue(pixels))/3 
     redAdjust=(greyValue)/float(getRed(pixels)) 
     greenAdjust=(greyValue)/float(getGreen(pixels)) 
     blueAdjust=(greyValue)/float(getBlue(pixels)) 
    for px in getPixels(myPict): 
    if (distance(white,getColor(px))>10): 
     setRed(px,getRed(px)*redAdjust) 
     setGreen(px,getGreen(px)*greenAdjust) 
     setBlue(px,getBlue(px)*blueAdjust) 
    repaint (myPict) 
Verwandte Themen