PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Страниц (1): [1]
Найдено сообщений: 9
vasya_228
Отправлено: 29 Октября, 2014 - 18:16:56 • Тема: Шаблонное распознавание простейшей капчи, ошибка в шаблоне • Форум: Графика в PHP
Ответов: 19 Просмотров: 5142
Спойлер (Отобразить ) PHP:
скопировать код в буфер обмена
0 =>
0 => int 0
1 => int 0
2 => int 0
3 => int 0
4 => int 0
5 => int 0
6 => int 0
7 => int 0
8 => int 0
9 => int 0
10 => int 0
11 => int 0
12 => int 0
13 => int 0
14 => int 0
15 => int 0
16 => int 0
17 => int 0
18 => int 0
19 => int 0
20 => int 0
21 => int 0
22 => int 0
23 => int 0
24 => int 0
25 => int 0
26 => int 0
27 => int 0
28 => int 0
29 => int 0
30 => int 0
31 => int 0
32 => int 0
33 => int 0
34 => int 0
35 => int 0
36 => int 0
37 => int 0
38 => int 0
39 => int 0
40 => int 0
41 => int 0
42 => int 0
43 => int 0
44 => int 0
1 =>
0 => int 0
1 => int 0
2 => int 0
3 => int 0
4 => int 0
5 => int 0
6 => int 0
7 => int 0
8 => int 0
9 => int 0
10 => int 0
11 => int 0
12 => int 0
13 => int 0
14 => int 0
15 => int 0
16 => int 0
17 => int 0
18 => int 0
19 => int 0
20 => int 0
21 => int 0
22 => int 0
23 => int 0
24 => int 0
25 => int 0
26 => int 0
27 => int 0
28 => int 0
29 => int 0
30 => int 0
31 => int 0
32 => int 0
33 => int 0
34 => int 0
35 => int 0
36 => int 0
37 => int 0
38 => int 0
39 => int 0
40 => int 0
41 => int 0
42 => int 0
43 => int 0
44 => int 0
2 =>
0 => int 0
1 => int 0
2 => int 0
3 => int 0
4 => int 0
5 => int 0
6 => int 0
7 => int 0
8 => int 0
9 => int 0
10 => int 0
11 => int 0
12 => int 0
13 => int 0
14 => int 0
15 => int 0
16 => int 0
17 => int 0
18 => int 0
19 => int 0
20 => int 0
21 => int 0
22 => int 0
23 => int 0
24 => int 0
25 => int 0
26 => int 0
27 => int 0
28 => int 0
29 => int 0
30 => int 0
31 => int 0
32 => int 0
33 => int 0
34 => int 0
35 => int 0
36 => int 0
37 => int 0
38 => int 0
39 => int 0
40 => int 0
41 => int 0
42 => int 0
43 => int 0
44 => int 0
3 =>
0 => int 0
1 => int 0
2 => int 0
3 => int 0
4 => int 0
5 => int 0
6 => int 0
7 => int 0
8 => int 0
9 => int 0
10 => int 0
11 => int 0
12 => int 0
13 => int 0
14 => int 0
15 => int 0
16 => int 0
17 => int 0
18 => int 0
19 => int 0
20 => int 0
21 => int 0
22 => int 0
23 => int 0
24 => int 0
25 => int 0
26 => int 0
27 => int 0
28 => int 0
29 => int 0
30 => int 0
31 => int 0
32 => int 0
33 => int 0
34 => int 0
35 => int 0
36 => int 0
37 => int 0
38 => int 0
39 => int 0
40 => int 0
41 => int 0
42 => int 0
43 => int 0
44 => int 0
4 =>
0 => int 0
1 => int 0
2 => int 0
3 => int 1
4 => int 1
5 => int 1
6 => int 1
7 => int 1
8 => int 0
9 => int 0
10 => int 0
11 => int 0
12 => int 0
13 => int 0
14 => int 0
15 => int 0
16 => int 0
17 => int 0
18 => int 0
19 => int 0
20 => int 0
21 => int 0
22 => int 0
23 => int 0
24 => int 0
25 => int 0
26 => int 1
27 => int 0
28 => int 0
29 => int 0
30 => int 0
31 => int 0
32 => int 0
33 => int 0
34 => int 0
35 => int 0
36 => int 0
37 => int 0
38 => int 0
39 => int 0
40 => int 0
41 => int 0
42 => int 0
43 => int 0
44 => int 0
5 =>
0 => int 0
1 => int 0
2 => int 0
3 => int 1
4 => int 0
5 => int 0
6 => int 0
7 => int 0
8 => int 0
9 => int 0
10 => int 0
11 => int 0
12 => int 0
13 => int 0
14 => int 0
15 => int 0
16 => int 0
17 => int 0
18 => int 0
19 => int 0
20 => int 0
21 => int 0
22 => int 0
23 => int 0
24 => int 0
25 => int 1
26 => int 1
27 => int 0
28 => int 0
29 => int 0
30 => int 0
31 => int 0
32 => int 0
33 => int 0
34 => int 0
35 => int 0
36 => int 0
37 => int 0
38 => int 0
39 => int 0
40 => int 0
41 => int 0
42 => int 0
43 => int 0
44 => int 0
6 =>
0 => int 0
1 => int 0
2 => int 0
3 => int 1
4 => int 0
5 => int 0
6 => int 0
7 => int 0
8 => int 0
9 => int 0
10 => int 0
11 => int 0
12 => int 0
13 => int 0
14 => int 0
15 => int 0
16 => int 0
17 => int 0
18 => int 0
19 => int 0
20 => int 0
21 => int 0
22 => int 0
23 => int 0
24 => int 1
25 => int 0
26 => int 1
27 => int 0
28 => int 0
29 => int 0
30 => int 0
31 => int 0
32 => int 0
33 => int 0
34 => int 0
35 => int 0
36 => int 0
37 => int 0
38 => int 0
39 => int 0
40 => int 0
41 => int 0
42 => int 0
43 => int 0
44 => int 0
7 =>
0 => int 0
1 => int 0
2 => int 0
3 => int 1
4 => int 1
5 => int 1
6 => int 1
7 => int 0
8 => int 0
9 => int 0
10 => int 0
11 => int 0
12 => int 0
13 => int 0
14 => int 0
15 => int 0
16 => int 0
17 => int 0
18 => int 0
19 => int 0
20 => int 0
21 => int 0
22 => int 0
23 => int 1
24 => int 0
25 => int 0
26 => int 1
27 => int 0
28 => int 0
29 => int 0
30 => int 0
31 => int 0
32 => int 0
33 => int 0
34 => int 1
35 => int 1
36 => int 1
37 => int 1
38 => int 1
39 => int 1
40 => int 1
41 => int 0
42 => int 0
43 => int 0
44 => int 0
8 =>
0 => int 0
1 => int 0
2 => int 0
3 => int 0
4 => int 0
5 => int 0
6 => int 1
7 => int 1
8 => int 0
9 => int 0
10 => int 0
11 => int 0
12 => int 0
13 => int 0
14 => int 1
15 => int 1
16 => int 1
17 => int 0
18 => int 0
19 => int 0
20 => int 0
21 => int 0
22 => int 0
23 => int 1
24 => int 0
25 => int 0
26 => int 1
27 => int 0
28 => int 0
29 => int 0
30 => int 0
31 => int 0
32 => int 0
33 => int 0
34 => int 0
35 => int 0
36 => int 0
37 => int 0
38 => int 0
39 => int 0
40 => int 0
41 => int 0
42 => int 0
43 => int 0
44 => int 0
9 =>
0 => int 0
1 => int 0
2 => int 0
3 => int 0
4 => int 0
5 => int 0
6 => int 0
7 => int 1
8 => int 0
9 => int 0
10 => int 0
11 => int 0
12 => int 0
13 => int 0
14 => int 0
15 => int 0
16 => int 0
17 => int 0
18 => int 0
19 => int 0
20 => int 0
21 => int 0
22 => int 0
23 => int 1
24 => int 1
25 => int 1
26 => int 1
27 => int 1
28 => int 0
29 => int 0
30 => int 0
31 => int 0
32 => int 0
33 => int 0
34 => int 0
35 => int 0
36 => int 0
37 => int 0
38 => int 0
39 => int 0
40 => int 0
41 => int 0
42 => int 0
43 => int 0
44 => int 0
10 =>
0 => int 0
1 => int 0
2 => int 0
3 => int 0
4 => int 0
5 => int 0
6 => int 0
7 => int 1
8 => int 0
9 => int 0
10 => int 0
11 => int 0
12 => int 0
13 => int 0
14 => int 0
15 => int 0
16 => int 0
17 => int 0
18 => int 0
19 => int 0
20 => int 0
21 => int 0
22 => int 0
23 => int 0
24 => int 0
25 => int 0
26 => int 1
27 => int 0
28 => int 0
29 => int 0
30 => int 0
31 => int 0
32 => int 0
33 => int 0
34 => int 1
35 => int 1
36 => int 1
37 => int 1
38 => int 1
39 => int 1
40 => int 1
41 => int 1
42 => int 0
43 => int 0
44 => int 0
11 =>
0 => int 0
1 => int 0
2 => int 0
3 => int 1
4 => int 0
5 => int 0
6 => int 1
7 => int 1
8 => int 0
9 => int 0
10 => int 0
11 => int 0
12 => int 0
13 => int 0
14 => int 0
15 => int 0
16 => int 0
17 => int 0
18 => int 0
19 => int 0
20 => int 0
21 => int 0
22 => int 0
23 => int 0
24 => int 0
25 => int 0
26 => int 1
27 => int 0
28 => int 0
29 => int 0
30 => int 0
31 => int 0
32 => int 0
33 => int 0
34 => int 0
35 => int 0
36 => int 0
37 => int 0
38 => int 0
39 => int 0
40 => int 0
41 => int 0
42 => int 0
43 => int 0
44 => int 0
12 =>
0 => int 0
1 => int 0
2 => int 0
3 => int 1
4 => int 1
5 => int 1
6 => int 1
7 => int 0
8 => int 0
9 => int 0
10 => int 0
11 => int 0
12 => int 0
13 => int 0
14 => int 0
15 => int 0
16 => int 0
17 => int 0
18 => int 0
19 => int 0
20 => int 0
21 => int 0
22 => int 0
23 => int 0
24 => int 0
25 => int 0
26 => int 1
27 => int 0
28 => int 0
29 => int 0
30 => int 0
31 => int 0
32 => int 0
33 => int 0
34 => int 0
35 => int 0
36 => int 0
37 => int 0
38 => int 0
39 => int 0
40 => int 0
41 => int 0
42 => int 0
43 => int 0
44 => int 0
13 =>
0 => int 0
1 => int 0
2 => int 0
3 => int 0
4 => int 0
5 => int 0
6 => int 0
7 => int 0
8 => int 0
9 => int 0
10 => int 0
11 => int 0
12 => int 0
13 => int 0
14 => int 0
15 => int 0
16 => int 0
17 => int 0
18 => int 0
19 => int 0
20 => int 0
21 => int 0
22 => int 0
23 => int 0
24 => int 0
25 => int 0
26 => int 0
27 => int 0
28 => int 0
29 => int 0
30 => int 0
31 => int 0
32 => int 0
33 => int 0
34 => int 0
35 => int 0
36 => int 0
37 => int 0
38 => int 0
39 => int 0
40 => int 0
41 => int 0
42 => int 0
43 => int 0
44 => int 0
14 =>
0 => int 0
1 => int 0
2 => int 0
3 => int 0
4 => int 0
5 => int 0
6 => int 0
7 => int 0
8 => int 0
9 => int 0
10 => int 0
11 => int 0
12 => int 0
13 => int 0
14 => int 0
15 => int 0
16 => int 0
17 => int 0
18 => int 0
19 => int 0
20 => int 0
21 => int 0
22 => int 0
23 => int 0
24 => int 0
25 => int 0
26 => int 0
27 => int 0
28 => int 0
29 => int 0
30 => int 0
31 => int 0
32 => int 0
33 => int 0
34 => int 0
35 => int 0
36 => int 0
37 => int 0
38 => int 0
39 => int 0
40 => int 0
41 => int 0
42 => int 0
43 => int 0
44 => int 0
15 =>
0 => int 0
1 => int 0
2 => int 0
3 => int 0
4 => int 0
5 => int 0
6 => int 0
7 => int 0
8 => int 0
9 => int 0
10 => int 0
11 => int 0
12 => int 0
13 => int 0
14 => int 0
15 => int 0
16 => int 0
17 => int 0
18 => int 0
19 => int 0
20 => int 0
21 => int 0
22 => int 0
23 => int 0
24 => int 0
25 => int 0
26 => int 0
27 => int 0
28 => int 0
29 => int 0
30 => int 0
31 => int 0
32 => int 0
33 => int 0
34 => int 0
35 => int 0
36 => int 0
37 => int 0
38 => int 0
39 => int 0
40 => int 0
41 => int 0
42 => int 0
43 => int 0
44 => int 0
vasya_228
Отправлено: 29 Октября, 2014 - 10:47:19 • Тема: Шаблонное распознавание простейшей капчи, ошибка в шаблоне • Форум: Графика в PHP
Ответов: 19 Просмотров: 5142
Ну ема, вы тут насоветовали всё что можно было найти в гугле. Задача у меня то другая стояла. Почему шаблон сверяет данные на существование едениц и не находит их, когда они там есть. Тот сайт для которого я писал распознавание капчи уже месяц как сменил оную.
vasya_228
Отправлено: 14 Октября, 2014 - 16:10:36 • Тема: Шаблонное распознавание простейшей капчи, ошибка в шаблоне • Форум: Графика в PHP
Ответов: 19 Просмотров: 5142
Делаю шаблонное распознавание капчи по этой статье xakep.ru/41033. При сравнение шаблона цифры пять, результата не было. Решил проверить, оказывается шаблон неправильный, хотя всё посчитал вроде правильно, начиная с нуля. Код за меня писать не надо, нужна подсказка. (Полный скрипт ниже)
Спойлер (Отобразить ) PHP:
скопировать код в буфер обмена
<?
$data = "/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDABQODxIPDRQSERIXFhQYHzMhHxwcHz8tLyUzSkFOTUlBSEZSXHZkUldvWEZIZoxob3p9hIWET2ORm4+AmnaBhH//2wBDARYXFx8bHzwhITx/VEhUf39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3//wAARCAAQAC0DASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDoLrU2gv8A7Ii2wYorAzXHl7iSRgDac9P1rRHTmqOowXN3HJbIsHkSptZ3Y7l9SBjB7Y5FWpbeKeLyp40lTj5XUMD+dAD2YIpZiAoGST0AqrYX320z/umjET7Ru6sMAg47delSy2kEtqbZowISNuxflAHtjpVew0/7HPdPudllcFd0rOcBQOcnrnP6UATTahZ28hjnu4InHVXkAP5E1NHIkqK8bq6MMhlOQRUM1tLJIWS9uIh/dRYyB+ak1NGpRFVnZyByzYyfyAFAH//Z" ;
//Цикл перевода капчи в монохромное изображение
for ( $i = 0 ; $i < $width ; $i ++ ) {
for ( $j = 0 ; $j < $height ; $j ++ ) {
// Получаем RGB пикселя по координате
// Разбиваем RGB на Red,Green,Blue и записываем каждую составляющую в свою переменную
//Сравнение белого ли цвета пиксель
if ( ( $r >= 131 && $r <= 256) && ( $g >= 131 && $g <= 256) && ( $b >= 131 && $b <= 256) ) {
}
else {
}
}
}
// Представление картинки в двоичном виде
for ( $j = 0 ; $j < $height ; $j ++ ) {
for ( $i = 0 ; $i < $width ; $i ++ ) {
$pixels [ $j ] [ $i ] = ( $r == 0 && $g == 0 && $b == 0) ? 1 : 0 ; // Замена пикселей на свои обозначения
echo $pixels [ $j ] [ $i ] ; // Вывод бинарной матрицы
}
echo "<br>" ;
}
// Out
echo "<br>Оригинальное изображение капчи: <img src=original.gif></img><br> Бинарное изображение капчи : <img src=mono.gif></img><br>" ;
// Ищем координаты
for ( $j = 0 ; $j < $height ; $j ++ ) { // сначала высота
for ( $i = 0 ; $i < $width ; $i ++ ) { // потом ширина
if ( $pixels [ $j ] [ $i ] == 1) {
$pX = $i ;
$pY = $j ;
$i = $width ;
$j = $height ;
if (
$pixels [ $pX ] [ $pY ] == 1 &&
$pixels [ $pX + 4] [ $pY ] == 1 &&
$pixels [ $pX ] [ $pY + 3] == 1 &&
$pixels [ $pX + 4] [ $pY + 4] == 1 &&
$pixels [ $pX + 4] [ $pY + 7] == 1 &&
$pixels [ $pX ] [ $pY + 8] == 1
)
{
$symbol_5 = 5 ;
}
else $symbol_5 = "not recognized." ;
}
}
}
echo "--------------------<br>" ;
echo "pX = $pX <br>pY = $pY <br>" ;
echo "--------------------<br>" ;
echo "Result - " . $symbol_5 ;
echo "<br>--------------------<br>" ;
// Проверка шаблона
echo $pixels [ $pX ] [ $pY ] . "<br>" ; /* $pixels[$pX+1][$pY+1] Будет 1 */
echo $pixels [ $pX + 4] [ $pY ] . "<br>" ; // 1
echo $pixels [ $pX ] [ $pY + 3 ] . "<br>" ; /* $pixels[$pX][$pY+3] Будет 1 */
echo $pixels [ $pX + 4] [ $pY + 4 ] . "<br>" ; // Тут должна быть 1
echo $pixels [ $pX + 4] [ $pY + 7 ] . "<br>" ; // Тут должна быть 1
echo $pixels [ $pX ] [ $pY + 8] ; // Тут должна быть 1
echo "<br>--------------------" ;
?>
Для распознавания цифры 5 идёт шаблон. (Кусок кода ниже)
PHP:
скопировать код в буфер обмена
if (
$pixels [ $pX ] [ $pY ] == 1 &&
$pixels [ $pX + 4] [ $pY ] == 1 &&
$pixels [ $pX ] [ $pY + 3] == 1 &&
$pixels [ $pX + 4] [ $pY + 4] == 1 &&
$pixels [ $pX + 4] [ $pY + 7] == 1 &&
$pixels [ $pX ] [ $pY + 8] == 1
)
{
$symbol_5 = 5 ;
}
else $symbol_5 = "not recognized." ;
Там проверяются координаты в бинарной матрице изображения. Если в указанных координатах существуют единицы то цифра определена.
Для составления шаблона, вывел матрицу на экран и посчитал все нужные мне координаты и записал в код для проверки шаблона. Проблема заключается в не определении координат. То есть координаты я посчитал, но при выполнении скрипта выдаёт в тех координатах, которые я посчитал, нули.
Страниц (1): [1]
Powered by ExBB FM 1.0 RC1. InvisionExBB