Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|
Координаты групп точек на изобаржении, php |

18.05.2010, 13:47
|
|
Постоянный
Регистрация: 16.04.2008
Сообщений: 889
Провел на форуме: 12942062
Репутация:
1550
|
|
Координаты групп точек на изобаржении, php
Имеется изображение
Один квадратик - один пиксель.
Необходимо в массив с N элементов (где N - группа связанных черных пискселей, в нашем случае 3) занестив каждый элемент строку с координатами точек, входящих в кучу
Тобдбишь на выходе из такой пикчи мы должны получить
a[1]="2,3|2,4|3,4|3,5|"
a[2]="7,6|7,7|8,5|8,6|"
a[3]="10,1|10,2|"
Надо на php и использованием gd.
Бьюсь уже целый час
Буду благодарен за код.
Последний раз редактировалось wildshaman; 18.05.2010 в 14:30..
|
|
|

18.05.2010, 14:01
|
|
Участник форума
Регистрация: 02.02.2009
Сообщений: 146
Провел на форуме: 1093500
Репутация:
43
|
|
берёшь первую строчку считаешь кол-во пикселей в ширину, пробегаешь попиксельно и считываешь цвет.если цвет чёрный то пишешь координату в массив. цвет узнавать функцией
ImageColorAt(int image, int x, int y);
image - это картинка
x,y - координаты соответственно
|
|
|

18.05.2010, 14:02
|
|
Новичок
Регистрация: 25.04.2010
Сообщений: 8
Провел на форуме: 72224
Репутация:
5
|
|
Хинт: открой картинку в hex-редакторе
|
|
|

18.05.2010, 14:07
|
|
Участник форума
Регистрация: 02.02.2009
Сообщений: 146
Провел на форуме: 1093500
Репутация:
43
|
|
а при чём тут хекс?
Надо на php и использованием gd.
|
|
|

18.05.2010, 14:09
|
|
наркоман с медалью
Регистрация: 07.05.2005
Сообщений: 3,704
Провел на форуме: 19975136
Репутация:
4536
|
|
[offtop]>Бьюсь уже целый час
и все?) иногда и 3 дня на задачу убиваешь, получая в итоге 100 строк кода  [/offtop]
на самом деле задача очень легкая, главное не кодить, а продумать алгоритм. потом уже кодить.
|
|
|

18.05.2010, 14:11
|
|
Участник форума
Регистрация: 02.02.2009
Сообщений: 146
Провел на форуме: 1093500
Репутация:
43
|
|
Сообщение от GreenBear
[offtop]>Бьюсь уже целый час
и все?) иногда и 3 дня на задачу убиваешь, получая в итоге 100 строк кода  [/offtop]
на самом деле задача очень легкая, главное не кодить, а продумать алгоритм. потом уже кодить.
согласен.
|
|
|

18.05.2010, 14:18
|
|
Постоянный
Регистрация: 16.04.2008
Сообщений: 889
Провел на форуме: 12942062
Репутация:
1550
|
|
Сообщение от dr.Web
берёшь первую строчку считаешь кол-во пикселей в ширину, пробегаешь попиксельно и считываешь цвет.если цвет чёрный то пишешь координату в массив.
Соль в том, что надо именно находить ГРУППЫ элементов
Ан нет, решения не нашел верного 
Последний раз редактировалось wildshaman; 18.05.2010 в 14:25..
|
|
|

18.05.2010, 15:27
|
|
Постоянный
Регистрация: 30.08.2007
Сообщений: 773
Провел на форуме: 3069349
Репутация:
808
|
|
Похоже на ту самую задачу уровня продвинутого школьника из темы " Как стать программистом". Классификация ещё та, конечно, определенно радует "аналог wget" - а это огромный объем работы - сразу после чего следует BB-парсер для которого достаточно определить автомат со стеком.
|
|
|

18.05.2010, 15:40
|
|
Reservists Of Antichat - Level 6
Регистрация: 23.08.2007
Сообщений: 1,237
Провел на форуме: 18127311
Репутация:
1676
|
|
Как вариант: найди реализацию алгоритма волновой трассировки и допиши под себя.
Задача на графы же...
|
|
|

18.05.2010, 16:18
|
|
Members of Antichat - Level 5
Регистрация: 15.06.2008
Сообщений: 941
Провел на форуме: 5111568
Репутация:
2399
|
|
воть:
сперва превращает твою картинку в матрицу, типа:
(0,0)0 (0,1)0 (0,2)0 (0,3)0 (0,4)0 (0,5)0 (0,6)0 (0,7)0 (0,8)0 (0,9)1 (0,10)0 (0,11)0
(1,0)0 (1,1)0 (1,2)0 (1,3)0 (1,4)0 (1,5)0 (1,6)0 (1,7)0 (1,8)0 (1,9)1 (1,10)0 (1,11)0
(2,0)0 (2,1)1 (2,2)0 (2,3)0 (2,4)0 (2,5)0 (2,6)0 (2,7)0 (2,8)0 (2,9)0 (2,10)0 (2,11)0
(3,0)0 (3,1)1 (3,2)1 (3,3)0 (3,4)0 (3,5)0 (3,6)0 (3,7)0 (3,8)0 (3,9)0 (3,10)0 (3,11)0
(4,0)0 (4,1)0 (4,2)1 (4,3)0 (4,4)0 (4,5)0 (4,6)0 (4,7)1 (4,8)0 (4,9)0 (4,10)0 (4,11)0
(5,0)0 (5,1)0 (5,2)0 (5,3)0 (5,4)0 (5,5)0 (5,6)1 (5,7)1 (5,8)0 (5,9)0 (5,10)0 (5,11)0
(6,0)0 (6,1)0 (6,2)0 (6,3)0 (6,4)0 (6,5)0 (6,6)1 (6,7)0 (6,8)0 (6,9)0 (6,10)0 (6,11)0
Потом распознает.
Результат:
PHP код:
array(3) {
[0]=> string(7) "0,9|1,9"
[1]=> string(15) "2,1|3,1|3,2|4,2"
[2]=> string(15) "4,7|5,6|5,7|6,6"
}
Сорс: http://paste.ly/1aF
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|