Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> PHP

PHP – Áp dụng ma trận tích chập 3×3 với imageconvolution()

imageconvolution() là hàm nội bộ trong PHP dùng để áp dụng ma trận tích chập (convolution matrix) 3×3, sử dụng hệ số và độ bù trong ảnh.

Cú pháp

bool imageconvolution(GdImage $image, array $matrix, float $div, float $offset)

Tham số

imageconvolution() nhận bốn tham số: $image, $matrix, $div, và $offset.

  • $image – Tạo kích thước ảnh bằng hàm tạo ảnh như imagecreatetruecolor().

  • $matrix – Mảng ma trận 3×3 các giá trị float.

  • $div – Dùng để chuẩn hóa.

  • $offset – Đặt độ bù màu.

Giá trị trả về

imageconvolution() trả về true khi thành công và false khi thất bại.

Ví dụ 1

<?php
// Tải ảnh PNG bằng imagecreatefrompng
$image = imagecreatefrompng('C:\xampp\htdocs\Images\img59.png');

// Áp dụng ma trận 3x3
$matrix = array(
    array(2, 0, 0),
    array(0, -1, 0),
    array(0, 0, -1)
);

// Sửa đổi phần tử ảnh
imageconvolution($image, $matrix, 1, 127);

// Hiển thị ảnh ra trình duyệt
header('Content-Type: image/png');
imagepng($image, null, 9);
?>

Kết quả

Ảnh PNG đầu vào trước khi dùng imageconvolution()

PHP – Áp dụng ma trận tích chập 3×3 với imageconvolution()

Ảnh PNG đầu ra sau khi dùng imageconvolution()

PHP – Áp dụng ma trận tích chập 3×3 với imageconvolution()

Ví dụ 2 – Làm mờ Gaussian

<?php
$image = imagecreatetruecolor(700, 300);

// Viết text và áp dụng Gaussian blur
imagestring($image, 50, 25, 8, 'Gaussian Blur Text image', 0x00ff00);
$gaussian = array(
    array(1.0, 2.0, 1.0),
    array(2.0, 4.0, 2.0),
    array(1.0, 2.0, 1.0)
);
imageconvolution($image, $gaussian, 16, 0);

// Viết lại text để so sánh
imagestring($image, 15, 20, 18, 'Gaussian Blur Text image', 0x00ff00);
header('Content-Type: image/png');
imagepng($image, null, 9);
?>

Kết quả

PHP – Áp dụng ma trận tích chập 3×3 với imageconvolution()