В командной строке Imagemagick вы можете преобразовать в HSI или LAB и получить яркость (интенсивность или яркость) из среднего значения I или L канала. Любой из этих методов должен работать. Обратите внимание, что -scale 1x1 делает простое среднее для всего изображения / канала и сохраняет это значение в 1 пикселе. Масштаб очень быстро. Это не похоже на -resize, который использует определенную функцию фильтра. Кроме того, вы можете просто вычислить среднее значение изображения без записи в 1 пиксель.
convert image -colorspace HSI -channel b -separate +channel -scale 1x1 -format "%[fx:100*u]\n" info:
convert image -colorspace LAB -channel r -separate +channel -scale 1x1 -format "%[fx:100*u]\n" info:
convert image -colorspace HSI -channel b -separate +channel -format "%[fx:100*u.mean]\n" info:
convert image -colorspace LAB -channel r -separate +channel -format "%[fx:100*u.mean]\n" info:
convert image -colorspace HSI -channel b -separate +channel -format "%[mean]\n" info:
convert image -colorspace LAB -channel r -separate +channel -format "%[mean]\n" info:
Результат будет между 0 и 100%, где 0 будет черным, а 100 - белым для всех, кроме двух последних, где диапазон fx находится в диапазоне от 0 до 1. Таким образом, коэффициент 100 для получения процента. Для последних двух команд значения будут в диапазоне от 0 до 255 для установки Q8 и от 0 до 65535 для установки Q16.
Обратите внимание, что каналы помечены по порядку, как если бы они были r, g, b. Но для современных версий Imagemagick вы можете использовать 0,1,2.
Кроме того, вы можете получить цвет пикселя для канала, который будет иметь некоторое значение серого:
convert image -colorspace HSI -channel b -separate +channel -scale 1x1 -format "%[pixel:u.p{0,0}]\n" info:
convert image -colorspace LAB -channel r -separate +channel -scale 1x1 -format "%[pixel:u.p{0,0}]\n" info:
Извините, я не знаю Имагика, но вижу
http://us3.php.net/manual/en/imagick.scaleimage.php
http://us3.php.net/manual/en/imagick.getimagepixelcolor.php
http://us3.php.net/manual/en/imagick.transformimagecolorspace.php
http://us3.php.net/manual/en/imagick.getimagechannelstatistics.php
или, возможно,
http://us3.php.net/manual/en/imagick.getimageproperty.php
Возможно, эксперт Imagick будет достаточно любезен, чтобы преобразовать одну из этих команд из командной строки в код Imagick.