【发布时间】:2013-10-02 05:12:10
【问题描述】:
我正在使用 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,那么如何从数据库中获取所有最接近的匹配图像。
谢谢
【问题讨论】:
-
到目前为止你有什么?这些数据看起来不错且有规律,所以应该相当简单,对吧?
-
潜在的查询是什么样的?
-
@FritsvanCampen 假设我为图像存储 6 种颜色,这意味着我们总共有 18 个值(6 *(R、B、G))值。那么如何设计表来存储这些值
标签: php mysql database-design search