2017-09-29 24 views
0

ユーザー入力によって決定された範囲内のピクセルの平均色を使用して、画像全体のホワイトバランスを変更したいと考えています。私はstartX,endX,startYendYという変数を使用しています。特定の範囲内の色平均

私はそれを1ピクセルの座標から処理しましたが、その範囲内のピクセルの平均値からはできませんでした。 greyValueは色の平均を返す方法がわからないために立ち往生します。

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= 

答えて

0

は心がそれ:)

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) 
を解くことはありません
関連する問題