Цветовые средние значения в пределах определенного диапазона

Я хочу изменить баланс белого всего изображения, используя средние цвета пикселей в пределах диапазона, определяемого пользовательским вводом. Я использую переменные под названием startX, endX, startY а также endY,

Мне удалось сделать это из одной пиксельной координаты, но не из усредненного значения пикселей в пределах диапазона. 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=

1 ответ

Не бери в голову это решить:)

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)
Другие вопросы по тегам