пару месяцев провозился с этой темой вот что могу сказать
судя по длине хеш алгоритм сжимает картинку до матрицы 8*8 , на практике этого не достаточно если очень много фото у вас пойдет много ложных срабатываний на первый взгляд разные картинки будут давать полное совпадение хеш
надо увеличить хеш сжимать картинку до 16*16 у вас на каждую картинку будет 4 таких хеш
Общи алгоритм примерно такой:
Обрезаем картинку берем квадрат по центру
Сжимаем картинку до указанного размера
запускаем цикл и проходим по пикселям
берем в точке цвет, получаем 3 составляющих красный = 123, зеленый = 23 и синий = 233
вычисляем итоговое значение Zxy = ( красный-зеленый - синий) 2 квадрат разницы, полученное число заносим в массив
записываем значения для всех точек в массив
вычисляем среднее average для всего массива
проходим в цикле по массиву сравниваем каждое Zxy со средним значение если оно больше то в битовую маску пишем 1 если меньше пишем 0
далее битовую маску можно получить в виде x16 кода, битовой строки или массива
Еще один момент на который хочу обратить внимание - в MySQl максимальный размер BIT поля = 64 бита, а это соответствует матрице 8x8, что нам категорически не подходит. Для того, чтобы увеличить длину хранимой маски в 4 раза я сделал в таблицы MySQL 4 поля по 64 бит. Выкладываю свой класс где возможность задавать размер матрицы до которой сжимается оригинальное фото. Для работы требуется библиотека imagick. http://bugacms.com/?i=267
тоже сразу подумал про черную дыру, однако вот предполагаю, что это должна быть не просто одна дыра, а 2 черных дыры которые вращаются вокруг друг друга с огромной скоростью. Ну вот на границе их взаимодействия творится полная каша из частиц, какие то из них получают столь грандиозное ускорение (энергию).
вообще пета это епт 10 в пятнадцатой степени!!!
все хочу узнать эта бочка пустая летает? или есть полезная нагрузка? если пустая то это мало чем отличается от полета простого реактивного самолета. и в чем тогда радость?
по WordPress ни одной новости, а между тем там скоро обновление :))
видимо ваш алгоритм получения матрицы немного отличается от того исходника с которого я начинал
пару месяцев провозился с этой темой вот что могу сказать
судя по длине хеш алгоритм сжимает картинку до матрицы 8*8 , на практике этого не достаточно если очень много фото у вас пойдет много ложных срабатываний на первый взгляд разные картинки будут давать полное совпадение хеш
надо увеличить хеш сжимать картинку до 16*16 у вас на каждую картинку будет 4 таких хеш
Общи алгоритм примерно такой:
Обрезаем картинку берем квадрат по центру
Сжимаем картинку до указанного размера
запускаем цикл и проходим по пикселям
берем в точке цвет, получаем 3 составляющих красный = 123, зеленый = 23 и синий = 233
вычисляем итоговое значение Zxy = ( красный-зеленый - синий) 2 квадрат разницы, полученное число заносим в массив
записываем значения для всех точек в массив
вычисляем среднее average для всего массива
проходим в цикле по массиву сравниваем каждое Zxy со средним значение если оно больше то в битовую маску пишем 1 если меньше пишем 0
получаем битовую маску 0101010101010101010101011111111
далее битовую маску можно получить в виде x16 кода, битовой строки или массива
Еще один момент на который хочу обратить внимание - в MySQl максимальный размер BIT поля = 64 бита, а это соответствует матрице 8x8, что нам категорически не подходит. Для того, чтобы увеличить длину хранимой маски в 4 раза я сделал в таблицы MySQL 4 поля по 64 бит. Выкладываю свой класс где возможность задавать размер матрицы до которой сжимается оригинальное фото. Для работы требуется библиотека imagick. http://bugacms.com/?i=267
вообще пета это епт 10 в пятнадцатой степени!!!