我正在尝试创建一个真正的马赛克应用程序。目前我有一张马赛克图像,即马赛克所基于的一张,以及来自我的 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 负载的突然爆发并不会真正打扰我,但是如果我们有办法一次拉出图像这也将是一个巨大的奖金。
更新亮度比较。
有亮度
(来源:buggedcom.co.uk)
没有亮度
(来源:buggedcom.co.uk)