Undertaker
30.11.2014 - 17:40
Здравствуйте, уважаемые форумчане.
Я никогда не работал с изображениями на php, но иногда жизнь заставляет
Задача: есть от сканированное изображение монетки на белом фоне (разумеется фон не исключительно белый, есть чёрные точки и чёрная полоска сбоку), монета может находиться в разных местах изображения (не могу же я постоянно пиксель в пиксель класть её в одно место)
Желательно что бы скрипт делал прозрачный фон для монеты и создавал обрезку без потери качества.
Это как то реализуется какими либо библиотеками на php или для работы с изображениями лучше выбрать другой язык?
Ткните носом в какую сторону копать
_____________
Из отчета службы безопасности:
... по поводу взлома китайцами сервера Пентагона:
1) Каждый китаец попробовал один пароль.
2) Каждый второй пароль был - maodzedun.
3) На 657983241-й попытке сервер согласился что у него пароль - maodzedun
AllesKlar
30.11.2014 - 17:54
Напиши, для чего это?
Просто, если это одноразовые операции (10-50 монеток в базу загнать), то реализация данной задачи по времени превысит обработку изображений в граф. редакторе.
_____________
[продано копирайтерам]
inpost
30.11.2014 - 18:17
UndertakerВыше ответ качественный. Если хочешь высокого качества и 1 раз - делай в фотошопе.
_____________
Обучаю веб-программированию качественно и не дорого:
http://school-php.comФрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Undertaker
30.11.2014 - 18:29
AllesKlar
Ну ведь не все мы всё делаем для себя, в этот раз-это задание начальства, конечно мне не влетит если я не осилю такую реализацию, однако если осилю, то это поднимет меня в глазах начальства=)
inpost
Да я и сам понимаю что фотошоп больше подходит для таких целей, но надо, что бы именно скрипт находил изображение и обрезал лишнее.
Если эта задача не для одной группы лиц, требующая нескольких лет разработки, то конечно я брошу это неблагодарное дело
Но если задача решаемая (пусть не в идеале как я описал), то мне бы было самому интересно поиграться с изображениями в php, на примере необходимой разработки
Мне нужен не сам скрипт, мне достаточно сказать какими методами можно это реализовать (разумеется скрипт-это в идеале, но не обязательно). Решил спросить у знающих людей, которые возможно сталкивались с этим
_____________
Из отчета службы безопасности:
... по поводу взлома китайцами сервера Пентагона:
1) Каждый китаец попробовал один пароль.
2) Каждый второй пароль был - maodzedun.
3) На 657983241-й попытке сервер согласился что у него пароль - maodzedun
walerus
30.11.2014 - 18:33
Цитата |
разумеется фон не исключительно белый, есть чёрные точки и чёрная полоска сбоку |
и
Цитата |
не могу же я постоянно пиксель в пиксель класть её в одно место |
как то не срастается... Ладно, местоположение допустим разное, но "чистый лист" подложку под монету, можно найти без всяких точек, а тем более черной полосы...
walerus
30.11.2014 - 18:35
Undertaker
Цитата |
какими методами можно это реализовать |
методами обработки изображения, найди границы монеты, это сделать не так сложно - определив, НЕ разрывающиеся границы, все остальное вокруг вырезать, потом найти центр фото, и воткнуть на "чистую" подложку нужного размера.
Undertaker
30.11.2014 - 18:42
walerus
Даже совсем новый лист бумаги не может быть чисто белым, указал это что бы мне не сказали ищи цвет "#FFFFFF" и его обрезай.
Логика ясна а какими библиотеками это реализуется (ImageMagick или GB)
Я никогда с изображениями не работал и мне интересно чем и как?
_____________
Из отчета службы безопасности:
... по поводу взлома китайцами сервера Пентагона:
1) Каждый китаец попробовал один пароль.
2) Каждый второй пароль был - maodzedun.
3) На 657983241-й попытке сервер согласился что у него пароль - maodzedun
AllesKlar
30.11.2014 - 18:54
walerusТы либо никогда не сканировал, либо не обрабатывал отсканированные изображения
Не бывает чистого листа с однотонным цветом #fff
Будет не менее сотни различных оттенков белого.
Причем, чем выше разрешение сканирования, тем больше примесей будет. Отсканируешь на 1200px вообще коричневые волокна бумаги можешь увидить.
Undertaker Цитата |
в этот раз-это задание начальства |
твое начальство даже не представляет сложность реализации данной фичи. Они просто торговые менеджеры, я так понимаю? Которые думают, что можно отсканировать фото машины и вращать ее в 3D ?
На реализацию данной фичи у тебя уйдет месяц, 100%. Следовательно твоему начальству это сядет в твою месячную зарплату. Оно им надо?
Алгоритм:
1. Берем пиксел в углу изображения, определяем его, как фон бумаги.
2. Определяем "погрешность" фона. Т.е. rgb(255, 255, 255) и rgb(255, 255, 250) - это один и тот же цвет. (алгоритм определения погрешности отдельная песня)
3. Сканируем изображение. Все пикселы, цвета которых попадают в цвет фоновых, перекрашиваем в одни, назначенный прозрачным.
4. Цвета, которые попадают в цвет фоновых, но находятся внутри монеты, перекрашиваем в другой "белый", который не является фоновым (иначе будут прозрачные дырки в монете.)
Исходя из алгоритма, побирай нужную библиотеку.
Задача несомненно интересная. Если бы было паралельное время, я б туда сходил, чтобы данной задачей заняться. К сожалению, нет возможности выкинуть из жизни месяц ради удовлетворения любопытсва
_____________
[продано копирайтерам]
walerus
30.11.2014 - 19:33
AllesKlar
Цитата |
Ты либо никогда не сканировал, либо не обрабатывал отсканированные изображения |
Как раз на оборот - "пересканировал" ))). Ставишь B & W сканирование, и ничего кроме черного или белого, никаких "коричневых" волокон и т.д., причем ТС не уточнил, результат ему какой нужен? ЧБ или цвет...
walerus
30.11.2014 - 19:35
ТС опиши полностью ТЗ и приложи 2ва фото монеты, одно "оригинал", другое - "после обработки"... посмотрим что нужно сделать..
AllesKlar
30.11.2014 - 19:38
walerusБлин, ну понятно, что они какой-нидь нумизматовский шоп запилили.
Нужно картинки к артиклям выставлять.
Хотя, с черно-белым, это идея.
Делается 2 скана. Цветной и ч/б.
По ч/б отлавливаем монетку, составляем "карту пикселей", потом берем цветной и просто по этой "карте" режем ненужное.
UndertakerВ общем, пробуй. Как запилишь, выкладывай, мы тебе дружно руку пожмем
_____________
[продано копирайтерам]
walerus
30.11.2014 - 20:02
Цитата |
мы тебе дружно руку пожмем |
Undertaker
30.11.2014 - 20:09
walerusЦветное изображение, очень высокий скан (как на мой взгляд)
Как запилить изображение с компа не знаю, поэтому вот
Качество сильно потерялось, но смысл понять можно
_____________
Из отчета службы безопасности:
... по поводу взлома китайцами сервера Пентагона:
1) Каждый китаец попробовал один пароль.
2) Каждый второй пароль был - maodzedun.
3) На 657983241-й попытке сервер согласился что у него пароль - maodzedun
AllesKlar
30.11.2014 - 20:57
ну, вот, например
http://php.net/manual/ru/imagick.blackthresholdimage.phpИ сканировать лучше не на белом фоне, а на заведомо-которого-не-будет-в-монетах. Не будем изобретать велосипед, сканируй на ядовито-зеленом
А дальше ужо дело техники (эксперементов, всмысле)
_____________
[продано копирайтерам]
walerus
30.11.2014 - 21:01
Мне нравятся люди, которые читают только ту часть "пелены" текста, которая им нравится...
Фото результат должен быть в цвете или ЧБ устроит ???
Для того что бы "прикрепить" фото, нужно, перед отправкой своего сообщения, нажмать клувишу - "Предварительный просмотр", там, снизу, будет кнопка - "Выберите файл", вот там и можно с "компа" прикрепить, но если фотки - большого размера, форум может не принять.
Блин, не проще фотиком было снять?..., ну да не суть.
В общем все просто, определить "позицию" (координаты начала/конца) монеты, сделать по 2мм поля и запилить новую фотку, относительно получившихся размеров..., начало границ можно определить "по изменению цвета".
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.