我正在使用 PHP 和 MySQL 构建一个图像厨房,我想通过它的颜色来实现图像搜索。通过遵循Imagick::getImageHistogram我从图像中获得了最多呈现的颜色。
<?php
$image = new Imagick("thing.png");
$pixels=$image->getImageHistogram();
foreach($pixels as $p){
$colors = $p->getColor();
foreach($colors as $c){
print( "$c\t" );
}
print( "\t:\t" . $p->getColorCount() . "\n" );
}
?>
This will print out something like:
Red Green Blue Alpha : No of times appeared
252 250 252 1 : 125
194 156 182 1 : 126
109 18 79 1 : 11440
2 117 162 1 : 12761
255 255 255 1 : 40769
虽然我已经完成了颜色的获取,但我仍然坚持设计数据库以将颜色信息与数据库中的图像路径一起存储。
我的问题是如何设计一个数据库(表结构)来存储这种可以有效地应用搜索可以查询的数据。
更新:
其次,如何获得具有匹配颜色的图像。假设用户正在搜索颜色#ff0000,那么我如何从数据库中获取所有最接近的匹配图像。
谢谢你