English | 简体中文 | 繁體中文
查询

Imagick::morphology()函数—用法及示例

「 应用形态学操作(如腐蚀、膨胀、开运算、闭运算等)到图像上 」


函数名: Imagick::morphology()

适用版本: 所有版本的 Imagick 扩展中可用

用法: Imagick::morphology() 方法用于应用形态学操作(如腐蚀、膨胀、开运算、闭运算等)到图像上。它可以改变图像的形状、大小和结构。该方法接受一个数组参数,数组中包含了形态学操作的参数和参数值。

语法: bool Imagick::morphology ( int $morphologyMethod , int $iterations , ImagickKernel $ImagickKernel [, int $channel = Imagick::CHANNEL_DEFAULT ] )

参数:

  • $morphologyMethod:指定要应用的形态学操作的类型。可选的值有 Imagick::MORPHOLOGY_ERODE、Imagick::MORPHOLOGY_DILATE、Imagick::MORPHOLOGY_OPEN、Imagick::MORPHOLOGY_CLOSE、Imagick::MORPHOLOGY_GRADIENT、Imagick::MORPHOLOGY_TOPHAT、Imagick::MORPHOLOGY_BLACKHAT。
  • $iterations:指定形态学操作的迭代次数。
  • $ImagickKernel:一个 ImagickKernel 对象,用于指定形态学操作的内核。
  • $channel(可选):指定要应用形态学操作的图像通道。默认为 Imagick::CHANNEL_DEFAULT。

返回值:成功时返回 true,失败时返回 false。

示例:

// 创建一个 Imagick 对象
$image = new Imagick('input.jpg');

// 创建一个 3x3 的腐蚀内核
$kernel = ImagickKernel::fromMatrix([
    [-1, -1, -1],
    [-1,  1, -1],
    [-1, -1, -1]
]);

// 应用腐蚀操作
$image->morphology(Imagick::MORPHOLOGY_ERODE, 1, $kernel);

// 保存结果图像
$image->writeImage('output.jpg');

以上示例中,我们首先创建了一个 Imagick 对象来加载输入图像。然后,我们创建了一个 3x3 的腐蚀内核,通过 ImagickKernel::fromMatrix() 方法来定义内核的值。最后,我们使用 Imagick::morphology() 方法将腐蚀操作应用到图像上,并将结果保存为 output.jpg。

注意:示例中的腐蚀操作只是一个示例,您可以根据需要选择不同的形态学操作和内核。

补充纠错
上一个函数: Imagick::mosaicImages()函数
下一个函数: Imagick::morphImages()函数
热门PHP函数
分享链接