Цветовые средние значения в пределах определенного диапазона
Я хочу изменить баланс белого всего изображения, используя средние цвета пикселей в пределах диапазона, определяемого пользовательским вводом. Я использую переменные под названием 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)