(Аналогичный вопрос был задан суперпользователю для ответов, связанных с приложениями. Вопрос размещен здесь, чтобы собрать программируемые решения для того же самого)
На моем рабочем месте фотографии паспортного размера сканируются вместе, затем разрезаются на отдельные изображения и сохраняются с уникальными номерами файлов. В настоящее время мы используем Paint.net для выбора, вырезания и сохранения изображений вручную.
Образец отсканированного документа Скриншот Picasa: (от: поиск изображений Google из нескольких источников, справедливое использование)
Например, В Picasa 3.8 при нажатии «Просмотр»> «Люди» отображаются все лица, и меня просят назвать их. Могу ли я автоматически сохранять эти отдельные изображения с именами как разные изображения?
Обновлено
Все, что я хочу сделать, это преобразовать изображение выше в отдельные изображения.
На изображении выше я показал, как Picasa 3.8 обнаруживает изображения и предлагает мне назвать их. Мне не нужно распознавание лиц, мне просто нужно распознавание лиц. Picasa обнаруживает отдельные изображения и показывает их на правой стороне. Эти отдельные изображения - то, что мне нужно. Picasa создает файл .ini, в котором сохраняются шестнадцатеричные значения, содержащие координаты отдельных лиц.
Эти отдельные лица - это то, что меня интересует. Если я могу получить координаты, Цитата из сайта помощи Picasa пользователь Technonath говорит
@oedious написал: - Это будет несколько технический, так что подождите. * Число, заключенное в rect64 (), является 64-битным шестнадцатеричным числом. * Разбейте это на четыре 16-битных числа. * Разделите каждый на максимальное 16-битное число без знака (65535), и вы получите четыре числа от 0 до 1. * Оставшиеся четыре числа дают вам относительные координаты лица. прямоугольник: (слева, сверху, справа, снизу). * Если вы хотите получить абсолютные координаты, умножьте левую и прямо по ширине изображения и верху и снизу высотой изображения.
В приведенной выше цитате говорится о числе, заключенном в rect64 (), а как насчет числа вне скобок после запятой?
Я задал связанный вопрос. Ответы на которые могут вам тоже помочь. Получите четыре 16-битных числа из 64-битного шестнадцатеричного значения.
Примечание. ini детали такие же, как у Picasa сгенерировано для конкретного изображения.
Кроме того, вопрос обновлялся несколько раз и может быть недостаточно ясным.
На сайте справки Picasa есть несколько ответов, где я задал тот же вопрос Один из ответов этого потока, чтобы получить координаты на основе шестнадцатеричных значений из ini-файла. Следующий код на C # из esac с сайта справки. Могу ли я сделать то же самое в PHP?
public static RectangleF GetRectangle(string hashstr)
{
UInt64 hash = UInt64.Parse(hashstr, System.Globalization.NumberStyles.HexNumber);
byte[] bytes = BitConverter.GetBytes(hash);
UInt16 l16 = BitConverter.ToUInt16(bytes, 6);
UInt16 t16 = BitConverter.ToUInt16(bytes, 4);
UInt16 r16 = BitConverter.ToUInt16(bytes, 2);
UInt16 b16 = BitConverter.ToUInt16(bytes, 0);
float left = l16 / 65535.0F;
float top = t16 / 65535.0F;
float right = r16 / 65535.0F;
float bottom = b16 / 65535.0F;
return new RectangleF(left, top, right - left, bottom - top);
}
Код PHP пытается преобразовать 64-битные числа в числа от 1 до 0
CO-ORDINATES : ".$cordinate1." ".$cordinate2."
";
}
?>
Результат
Остаток 1: 49551; Результат 1: 0,75608825683594 КООРДИНАТЫ: 371,99542236328 396,94633483887 Остаток 1: 19598; Результат 1: 0,29904174804688 КООРДИНАТЫ: 147,12854003906 156,99691772461 Остаток 1: 62471; Результат 1: 0,95323181152344 КООРДИНАТЫ: 468,99005126953 500,4467010498 Остаток 1: 34078; Результат 1: 0.51998901367188 КООРДИНАТЫ: 255.83459472656 272.99423217773
Итак, у меня тоже есть координаты, и @Nirmal показал, как их обрезать . Теперь следующим шагом будет анализ файла picasa.ini на предмет шестнадцатеричных кодов и имен файлов и интеграция кода. Picasa в настоящее время не предоставляет шестнадцатеричные коды через API (или Есть? ). Если бы это было так, все было бы лучше.
Итак, мы приближаемся к решению. Спасибо всем, я хотел бы наградить всех (я не могу, но не бойтесь и ждите всплеска вашей репутации!)