Imagick::getImageChannelStatistics

(PECL imagick 2, PECL imagick 3)

Imagick::getImageChannelStatistics返回图像中每个通道的统计信息

说明

public Imagick::getImageChannelStatistics(): array

返回图像中每个通道的统计信息。统计信息包括通道深度、最小值和最大值、平均值和标准差。

参数

此函数没有参数。

返回值

成功时返回 true

添加备注

用户贡献的备注 1 则备注

1
holdoffhunger at gmail dot com
12 年前
ImageMagick 函数 'getImageChannelStatistics' 返回一个数组数组。第一个数组的键具有设置为 0、1、2、4、8 和 32 的值。这些数组中的每一个反过来又具有五个值,即平均值、最小值、最大值、标准差和深度。数组的示例 print_r 产生...

数组
(
[0] => 数组
(
[mean] => 0
[minima] => 1.0E+37
[maxima] => -1.0E-37
[standardDeviation] => 0
[depth] => 1
)

[1] => 数组
(
[mean] => 13215.2836185
[minima] => 0
[maxima] => 65535
[standardDeviation] => 19099.2202751
[depth] => 8
)

[等等,等等..]
}

键的每个 0、1、2 等值代表什么?这些是 ImageMagick 通道常量的共享、计算值。您拥有类似于 imagick::CHANNEL_UNDEFINED 的通道常数值,其 "_VALUE" 值为:undefined、red、gray、cyan、green、magenta、blue、yellow、alpha、opacity、matte、black、index、all 和 default。如果您实际打印出这些常量,您将获得 '0' 代表 undefined,'1' 代表 red、gray 和 cyan,'2' 代表 green 和 magenta,'4' 代表 blue 和 yellow,'8' 代表 alpha、opacity 和 matte,或 '32' 代表 black 和 index。为什么多个通道共享相同的计算整数值?这是因为它们是来自不同颜色空间的颜色,其中 Red/Green/Blue 是 RGB 光谱,Cyan/Magenta/Yellow/blacK 是 CMYK 光谱,等等,等等。如果您想要获得 Cyan 或 Red 的统计结果值,您将访问相同的通道键。

每个颜色通道会产生五个值。键 'mean' 和 'standardDeviation' 的元素值是 getImageChannelMean 函数的结果。键 'minima' 和 'maxima' 的元素值是 getChannelRange 函数的结果。而键 'depth' 的元素值是 getImageChannelDepth 函数的结果。所有这些值在测量特定图像的通道值方面都很有用。

现在,一些示例代码

<?php

// 作者:[email protected]

// 创建 Imagick 对象
// ---------------------------------------------

$imagick_type = new Imagick();

// 要打开的文件名
// ---------------------------------------------

$file_to_grab_with_location = "image_workshop_directory/test.bmp";

// 打开文件
// ---------------------------------------------

$file_handle_for_viewing_image_file = fopen($file_to_grab_with_location, 'a+');

// 读取文件
// ---------------------------------------------

$imagick_type->readImageFile($file_handle_for_viewing_image_file);

// 获取统计信息
// ---------------------------------------------

$imagick_type_channel_statistics = $imagick_type->getImageChannelStatistics();

// 打印统计信息
// ---------------------------------------------

print_r($imagick_type_channel_statistics);

?>
To Top