在 PHP 中使用线性滤镜锐化图像


Sharpen an image with a linear filter in PHP

我想读取图像并使用线性滤波器对其进行锐化,即此矩阵:

H =  [-0.5 -0.5 -0.5; -0.5 5 -0.5; -0.5 -0.5 -0.5]

我知道ImageMagick,有没有可能做到这一点?

你所追求的是将卷积过滤器应用于图像,为此你可以使用PHP内置的imageconvolution() php.net 函数。

有关用法,请参阅 Magilvia 关于根据您的目的修改 php.net 的示例:

<?php 
    $sharpenMatrix = array 
    ( 
        array(-0.5, -0.5, -0.5), 
        array(-0.5, 5, -0.5), 
        array(-0.5, -0.5, -0.5) 
    ); 
    // calculate the sharpen divisor 
    $divisor = array_sum(array_map('array_sum', $sharpenMatrix));            
    $offset = 0; 
    // apply the matrix 
    imageconvolution($img, $sharpenMatrix, $divisor, $offset); 
?>

$img是应用卷积矩阵(锐化过滤器)的 PHP 图像