Hướng dẫn how to convert image to grayscale in php? - làm thế nào để chuyển đổi hình ảnh sang thang độ xám trong php?


& nbsp;

Danh mục: Lập trình/PHP

Mặc dù việc chuyển đổi một hình ảnh (thường có màu thật) thành thang độ xám có thể nghe giống như một thao tác đơn giản nếu bạn đã quen với phần mềm xử lý hình ảnh, PHP không có chức năng cho chuyển đổi này theo mặc định.

Hình ảnh thang độ xám

Một hình ảnh thang độ xám chỉ chứa các mức màu xám khác nhau trong hình ảnh, có thể được biểu thị bằng toán học bằng các giá trị màu đỏ, xanh lá cây và xanh dương (được biểu thị bằng RGB) đều bằng nhau.

Tuy nhiên, hình ảnh màu thật có thể có bất kỳ giá trị nào cho R, G và B, vì vậy để chuyển đổi điều này thành giá trị thang độ xám, cần phải chuyển đổi.

RGB và HSV

HSV là viết tắt của màu sắc, bão hòa và giá trị. Để thể hiện một hình ảnh trong thang độ xám, tất cả những gì chúng ta cần là sử dụng giá trị, không có màu sắc hoặc độ bão hòa. Có các phương trình chuyển đổi từ người này sang nhau, vì vậy tất cả những gì chúng ta cần làm là sử dụng chúng.

H = pow (cos (((1/2)*((r-g) + (r-b)) / (sqrt ((r-g)*(r-g) + (r-b)*(g-b))), -1);pow(cos( ( (1/2)*( (r-g)+(r-b) ) / ( sqrt( (r-g)*(r-g) + (r-b)*(g-b) ) ) ), -1);

S = 1 - (3 / (r+g+b))*min (r, g, b));1 - (3 / (r+g+b))*min(r,g,b) );

V = (1/3) * (r + g + b);(1/3) * (r + g + b);

Hai cái đầu tiên có vẻ khá phức tạp, nhưng tất cả những gì chúng ta cần là thứ ba, đơn giản là trung bình.

Bây giờ, vì chúng ta cần đại diện cho hình ảnh một lần nữa trong thang độ xám, chúng ta sẽ chỉ sử dụng giá trị tính toán cho cả ba R, G và B.

Chủ đề