2016-02-23 2 views
0

Мне нужно подсчитать пиксели изображения, которые не являются цветом фона. Я называю это из PHP (это от ImageMagick):Число пикселей в пикселях с GraphicsMagick

gm convert test.png -fill black +opaque "rgb(255,255,255)" -fill white -opaque "rgb(255,255,255)" -print "pixels = %[fx:w*h*mean]\n" 

Но это не дает никакого результата, ничего. Я попытался с помощью гистограммы вместо:

gm convert test.png -define histogram:unique-colors=true -format %c histogram:info.txt 

Это работает, но дает значение для каждого цвета и больше деталей, мне просто нужен один номер, пожалуйста.

ответ

0

У вас есть пара вопросов здесь. Кажется, вы пытаетесь смешивать GraphicsMagick с ImageMagick, когда они не одно и то же.

Во-первых, у GraphicsMagick нет оператора +opaque, который имеет ImageMagick.

Во-вторых, у него нет оператора -fx, который ImageMagick имеет для выполнения математики.

Я предлагаю вам перейти на более мощный ImageMagick. Тогда он будет работать, как вы ожидаете:

# Create a test image 
convert -size 200x200 xc:black xc:white xc:red +append image.png 

enter image description here

# Count the white pixels 
convert image.png -fill black +opaque "rgb(255,255,255)" -print "pixels = %[fx:w*h*mean]\n" nul: 
pixels = 40000 

Если вы действительно, действительно должны сделать это с GraphicsMagick, я могу только предположить следующее - который в значительной степени основывается на @ GlennRanders-Pehrson ответить here:

gm convert image.png +matte -matte -transparent white -operator matte negate 1 result.png 

gm identify -verbose result.png | grep -EA5 "Opacity:|Geometry:" | grep -E "Mean|Geometry" 
    Geometry: 600x200 
    Mean:     43690.00 (0.6667) 
    Mean:     43690.00 (0.6667) 

И ваш ответ будет:

600 * 200 * (1 - 0.667) 
+0

Благодарим вас за подробный ответ. Действительно, я только что попытался использовать решение для ImageMagick, но мне нужно придерживаться GraphicsMagick. Я не понимаю команду «-define histogram: unique-colors = true» и не могу найти никакой информации ... –

+0

Этот параметр не имеет никакого значения. –

Смежные вопросы