网站开发栏目,介绍前端、后台、服务器、数据库、建站工具等实用网站开发教程。
本文主要讲解使用php(color-thief)组件,获取获取图片的RGB值,然后对图片进行分类。具体步骤如下:
1.安装组件
composer require ksubileau/color-thief-php
2.从图像中获取主色
require_once 'vendor/autoload.php';
use ColorThief\ColorThief;
$dominantColor = ColorThief::getColor($sourceImage);
函数getPalette参数(图片地址, 获取颜色数量上线, 按照多少像素平均值来计算[即提取精度1像素为最高,精度越高越卡]);
函数返回一个由三个整数值组成的数组,与主颜色的RGB值(红色、绿色和蓝色)相对应。
3.将获取到的颜色转换为HSV模式
//转换颜色模式
require_once './hsl/RBG.php';
$HSV = new RGB(红,绿,蓝);//导入刚才获得的RGB值
$HSV=$HSV->toHSV();
$HSV=(array)$HSV;
$HSV_h=round($HSV["*_hue"]);
$HSV_s=round($HSV["*_saturation"]*100);
$HSV_v=round($HSV["*_value"]/255*100);
4.以hsv模式判断颜色
function is_colors($h,$s,$v) {
//误差率2%
if($s>=15 && $v>=25){
//有饱和度&有亮度 =有颜色
if(($h>=0 && $h<=20) || ($h>310 && $h<=360)){
//红色
return '红色';
}elseif($h>20 && $h<=35){
//橙色
return '橙色';
}elseif($h>35 && $h<=75){
//黄色
return '黄色';
}elseif($h>75 && $h<=160){
//绿色
return '绿色';
}elseif($h>160 && $h<=200){
//青色
return '青色';
}elseif($h>200 && $h<=260){
//蓝色
return '蓝色';
}elseif($h>260 && $h<=310){
//紫色
return '紫色';
}
}else{
//判断黑白灰
if($v>90){
//白色
return '白色';
}else if($v<25){
//黑色
return '黑色';
}else{
//灰色
return '灰色';
}
}
}
误差率2%,毕竟颜色太接近的颜色每个人的评估标准是不一样的,但目前绝大多数图片都可以准确的判断进行分类。
https://github.com/ksubileau/color-thief-php
转载请注明来源:利用PHP(color-thief)组件给图片按照颜色进行分类
本文永久链接地址:https://www.moyouyouw.cn/code/580.html
郑重声明:本站所有主题/文章除标明原创外,均来自网络转载,版权归原作者所有,如果有侵犯到您的权益,请联系本站删除,谢谢!我们不承担任何技术及版权问题,且不对任何资源负法律责任。
售价: 399 76 ℃ 0 评论
售价: 399 95 ℃ 0 评论
售价: 399 62 ℃ 0 评论
已有 位小伙伴发表了看法
欢迎 你 发表评论