📅  最后修改于: 2023-12-03 15:33:33.396000             🧑  作者: Mango
thresholdImage()
函数是imagick扩展中的一个重要函数,在图像处理中被广泛使用。它的作用是将图像做二值化处理,将图像的像素点根据设定的阈值分成两类,一类是高于设定阈值的像素点,另一类是低于或等于设定阈值的像素点。这个函数可以将彩色图片或黑白图片均匀地分成两类,并将黑白图片转换为二值图片。
public bool Imagick::thresholdImage(float $threshold, [, int $channel = Imagick::CHANNEL_ALL ])
$threshold
:设定的阈值,可以是0~1之间的浮点数,也可以是8位整数。如果为0~1之间的浮点数,则会根据 QuantumRange
进行缩放处理,即将该浮点数乘以 QuantumRange
后转换为整数作为阈值。如果为8位整数,则直接作为阈值。$channel
:可选参数,指定要处理的通道,可选值为 imagick::CHANNEL_ALL, imagick::CHANNEL_RED, imagick::CHANNEL_GRAY, imagick::CHANNEL_GREEN, imagick::CHANNEL_BLUE, imagick::CHANNEL_ALPHA, imagick::CHANNEL_MAGENTA, imagick::CHANNEL_YELLOW, imagick::CHANNEL_BLACK, imagick::CHANNEL_OPACITY, imagick::CHANNEL_CYAN, imagick::CHANNEL_INDEX, imagick::CHANNEL_LUMINANCE, imagick::CHANNEL_SATURATION。返回值为bool类型,即函数执行成功返回true,否则返回false。
<?php
// 实例化一个imagick对象
$image = new Imagick('example.jpg');
// 将图片做灰度处理
$image->modulateImage(100, 0, 100);
// 将图片做二值化处理,设定阈值为0.5
$image->thresholdImage(0.5);
// 显示处理后的图片
header('Content-Type: image/jpeg');
echo $image;
?>
以上示例中,我们可以看到先利用 modulateImage()
函数将原图片做灰度处理,然后再利用 thresholdImage()
函数对灰度化后的图片做二值化处理,设定阈值为0.5,最后再将处理后的图片输出。输出的图片已经变成了二值图片,即只有黑色和白色。
thresholdImage()
函数不支持返回图像数据,只能直接输出或保存处理后的图片。