用PHP检测白色图像背景?

Posted

技术标签:

【中文标题】用PHP检测白色图像背景?【英文标题】:Detecting white image background with PHP? 【发布时间】:2015-08-16 01:01:17 【问题描述】:

是否可以使用 php(或者 JS 或类似的东西)来检测图像是否具有大部分白色背景?

这是因为我显示图像的地方是白色背景。有些图像具有深色或彩色背景,但有些是白色或大部分是白色。我有一个名为img-shadow 的css 类,它为图像添加阴影。所以我想补充一点,只有当图像的背景是白色或大部分是白色时。

这里有一个例子来说明我的意思:

【问题讨论】:

你不能使用直方图吗?你的主要目标是什么?是检测带有边框的图像还是大部分为白色的图像?我会说这两个图像大部分都是白色的。 我只是想“我只需要找出如何计算图像的白色像素”,以百分比计算它们,然后决定是否添加类。我完全忘记了相机的直方图功能。所以我只需要了解如何在 php/js 中执行此操作。是的,它是同一个图像。正如我所说,我只是将类添加到左侧图像中。因为您问的原因:这是因为您不会在网站上看到具有大部分白色或全白色背景的图像的边框。 【参考方案1】:

即使整个过程有很多陷阱,我还是会选择使用PHP。

首先,回答你自己:

大部分是白色背景到底是什么? RGB(250,250,250) 还算吗? 带有 alpha 通道的 PNG 是否计数 (RGBA)? 淡黄色/亮黄色的图像算不算? 带有黑色边框(框架)和白色中心的图像是否仍算为白色 背景? 用户可以上传图片吗?

你必须:

    加载图片 get histogram 根据您的规则进行分析 添加有关特定图像的元信息并在输出时生成 css 类。

除此之外,我建议:

不会分析每个脚本执行图像上的某种结果缓存或元数据存储等 检查图片是否有边框(通过查看图片侧面开发算法) 将 Alpha 通道视为白色(可能是带有圆角的深色徽标 - 没有白色)

【讨论】:

以上是关于用PHP检测白色图像背景?的主要内容,如果未能解决你的问题,请参考以下文章

用php检测png图像的背景颜色是不是为灰色[重复]

PHP GD 多张白色背景图像 - 警告?

用白色背景替换PNG图像中的透明度

Opencv c ++检测并裁剪图像上的白色区域

带有白色背景且未集中的 PHP 缩略图

如何检测图像PHP中形状的位置[关闭]