Я пытаюсь создать настоящее мозаичное приложение. На данный момент у меня есть одно мозаичное изображение, то есть то, на котором основана мозаика, и около 4000 изображений из моей библиотеки iPhoto, которые действуют как библиотека изображений. Я уже провел свое исследование и проанализировал мозаичное изображение. Я преобразовал его в фрагменты размером 64x64 каждый из 8 пикселей. Я рассчитал средний цвет для каждого среза и установил значения r, g, b и яркости ( Яркость (воспринимается вариант 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, а затем вытаскиваю соответствующие изображения из таблицы библиотеки на основе цветовых гексов. Моя проблема в том, что я занимался этим слишком долго и, возможно, выпил слишком много энергетических напитков, поэтому не могу правильно сконцентрироваться, я не могу найти способ выбрать ближайшего соседа по цвету, если соответствующий шестнадцатеричный код не существует.
Есть идеи по поводу идеального запроса?
NB. Я знаю, что вытягивать кусочки по одному не идеально, однако мозаика перестраивается периодически, поэтому внезапный всплеск загрузки mysql меня не особо беспокоит, однако, если у нас есть способ вытащить изображения все это одновременно было бы огромным бонусом.
Обновление Сравнение яркости.
с яркостью
без яркости