gpt4 book ai didi

php - 使用 PHP 检测图像的主要阴影

转载 作者:行者123 更新时间:2023-12-04 07:02:24 24 4
gpt4 key购买 nike

我以前使用过 GD,但只用于动态调整/生成图像的大小 - 尽管我非常肯定它有能力做我想要的。

尽可能简单,我需要检查图像以确定它是浅色背景还是深色背景。 IE。如果背景主要是“亮”,则返回值“1”,如果主要是“暗”,则返回“0”。

在这个过程中一次只会迭代 5 个图像,但我很清楚这里的处理时间 - 该页面将经常被调用。

任何人都可以为我指出正确的方向吗?

最佳答案

首先看看是否有您可以利用的任何模式 - 例如,左上角或右上角(例如)是否始终是背景颜色?如果是这样,只需查看该像素的颜色。

也许您可以通过查看一些关键像素并对其进行平均来获得“足够好”的想法。

像这样简单的事情失败了,你需要做的工作开始增加数量级。

我的一个好主意是将像素 strip 从左上角到右下角对角线(也许看看 Bresenham's line algorithm )。寻找深色和浅色的运行,并且可能需要最长的运行;如果这不起作用,也许您应该根据它们的明暗程度对运行进行“评分”。

如果您的图像不必要地过大(例如 1000x1000 或更大),则使用 imagecopyresized 以便宜的方式将其缩小到合理的大小(例如 80x80)。

如果图像的大部分是背景颜色,那么可以将图像重新采样为 1 个像素并检查该像素的颜色(或者可能是一些小的东西,4x4 左右,然后计算像素以查看图像是否是主要是浅色或深色)。

请注意,imagecopyresampled 比 imagecopyresized 昂贵得多,因为 'resized 只是从原始像素中获取单个像素,而 'resampled 实际上将像素混合在一起。

如果您想要衡量“亮度”,您可以简单地将 R、G 和 B 值加在一起。或者您可以使用 YCbCr 中使用的亮度公式:

Y' = 0.299 * R + 0.587 * G + 0.114 * B

这给出了更“以人为中心”的亮度测量。

关于php - 使用 PHP 检测图像的主要阴影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1648635/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com