algorithm - Mysql 确定最接近颜色匹配的算法

标签 algorithm mysql colors closest

我正在尝试创建一个真正的马赛克应用程序。目前我有一张马赛克图像,即马赛克所基于的图像,以及作为图像库的 iPhoto 图库中的大约 4000 张图像。我已经完成了研究并分析了马赛克图像。我已将其转换为 64x64 切片,每 8 个像素。我计算了每个切片的平均颜色并确定了 r、g、b 和亮度 (Luminance (perceived option 1) = (0.299*R + 0.587*G + 0.114*B)) 值。我对图片库中的每张照片都做了同样的操作。

马赛克切片表看起来像这样。

slice_id, slice_image_id, slice_slice_id, slice_image_column, slice_image_row, slice_colour_hex, slice_rgb_red, slice_rgb_blue, slice_rgb_green, slice_rgb_brightness

图像库表看起来像这样。

upload_id, upload_file, upload_colour_hex, upload_rgb_red, upload_rgb_green, upload_rgb_blue, upload_rgb_brightness

基本上我是将切片表中的图像切片读入 PHP,然后根据颜色十六进制从库表中提取适当的图像。我的问题是我喝这个太久了,可能喝了太多能量饮料,所以注意力不集中,如果不存在适当的十六进制代码,我无法找出最近的颜色邻居的方法。

关于完美查询有什么想法吗?

注意:我知道一张一张地取出切片并不理想,但是马赛克只是定期重建,所以 mysql 负载的突然爆发并没有真正打扰我,但是如果我们有办法取出图像同时这也将是一笔巨大的奖金。

更新亮度比较。

有亮度

alt text
(来源:buggedcom.co.uk)

无亮度

alt text
(来源:buggedcom.co.uk)

最佳答案

最小化颜色之间差异(根据其 RGB 分量)的一种方法是分别最小化每个分量中的差异。因此,您正在寻找具有最低

的条目
(targetRed - rowRed)^2 + (targetGreen - rowGreen)^2 + (targetBlue - rowBlue)^2

关于algorithm - Mysql 确定最接近颜色匹配的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2785407/

相关文章:

c - quickSelect算法返回第k小的元素

mysql - 在 Sql 查询中设置多个参数值

mysql - 如何array_rand一个数组?

bash - echo 命令颜色不起作用

algorithm - 的渐近运行时间是多少

algorithm - 排列数

mysqldump_wrokbench 数据导出高级选项不完整和所有 mysqldump 选项支持

Android - VectorXML 通知图标颜色,SAMSUNG 错误?

java 设置变量

c++ - 帮助理解这个算法