ImagickKernel::fromMatrix()函式用於建立一個ImagickKernel物件,該物件表示一個影象處理的卷積核。
函式原型:
public static ImagickKernel ImagickKernel::fromMatrix(array $matrix [, float $origin = NULL ])
引數說明:
- $matrix: 一個二維陣列,表示卷積核的數值矩陣。矩陣的大小必須是奇數,並且行列數必須相等。
- $origin (可選): 卷積核的原點位置,預設為NULL,表示將原點設定在矩陣的中心。可以使用陣列表示原點的位置,例如[0, 0]表示原點在矩陣的左上角。
返回值:
- 返回一個ImagickKernel物件,表示一個卷積核。
示例程式碼:
// 建立一個3x3的卷積核
$matrix = [
[1, 2, 1],
[0, 0, 0],
[-1, -2, -1]
];
$kernel = ImagickKernel::fromMatrix($matrix);
// 輸出卷積核的大小
echo "Kernel size: " . $kernel->getMatrixSize() . PHP_EOL;
// 輸出卷積核的原點位置
$origin = $kernel->getOrigin();
echo "Kernel origin: (" . $origin['x'] . ", " . $origin['y'] . ")" . PHP_EOL;
// 輸出卷積核的數值矩陣
$matrix = $kernel->getMatrix();
echo "Kernel matrix: " . PHP_EOL;
foreach ($matrix as $row) {
echo implode("\t", $row) . PHP_EOL;
}
輸出結果:
Kernel size: 3
Kernel origin: (1, 1)
Kernel matrix:
1 2 1
0 0 0
-1 -2 -1
以上示例展示瞭如何使用ImagickKernel::fromMatrix()函式建立一個3x3的卷積核,並輸出了卷積核的大小、原點位置以及數值矩陣。