Указать свою операционную систему | WINDOWS 10 x 64 |
Указать версию Python | 3.8.0 |
Укажите версию библиотек с которыми работаете |
Код:
|
Вставьте фрагмент кода который у вас имеется на данный момент | Описание вопроса ниже |
Итак, осваиваю нейронные сети, решил начать с небольших капч.
Пример капчи:
В чем суть. На капче есть 2 числа. Мне нужно получить 2 массива - NumberFirst и NumberSecond, в каждом из них будет массив из 0 и 1.
Как я пытаюсь это сделать:
С помощью некоторой обработки изображений получаю вот это:
Перевожу эти черно-белые данные в байтовых двумерный массив.
Теперь мне нужно вычленить только те данные, где есть числа. Для этого сначала я транспонирую эту матрицу:
Python:
# Транспонирование в одну сторону
NumbersTransponire = [list(i) for i in zip(*Numbers)]
Теперь я пробегаюсь по каждой строчке и ищу, в какой из них суммарно больше 3х единиц:
Python:
NumberFirst = []
NumberSecond = []
flag_findFirst = False
flag_findSecond = False
index_firstNumber_begin = -1
index_firstNumber_end = -1
index_secondNumber_begin = -1
index_secondNumber_end = -1
rowIndex = 0
for row in NumbersTransponire:
col_summ = sum(row)
print(col_summ)
RowArray = []
if col_summ >= 3:
if index_firstNumber_begin == -1:
index_firstNumber_begin = rowIndex
NumberFirst.append(RowArray)
else:
if index_firstNumber_end == -1:
NumberFirst.append(RowArray)
else:
if index_secondNumber_begin == -1:
index_secondNumber_begin = rowIndex
NumberSecond.append(RowArray)
else:
if index_secondNumber_end == -1:
NumberSecond.append(RowArray)
else:
if index_firstNumber_begin > -1:
index_firstNumber_end = rowIndex - 1
else:
if index_secondNumber_begin > -1:
index_secondNumber_end = rowIndex - 1
0
2
1
4
6
5
9
10
10
8
11
13
9
3
1
3
0
0
0
2
4
9
12
10
10
10
6
4
4
4
3
2
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
1
4
6
5
9
10
10
8
11
13
9
3
1
3
0
0
0
2
4
9
12
10
10
10
6
4
4
4
3
2
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
А главный вопрос: может я занимаюсь изобретением велосипеда? Может быть уже есть готовое решение? Суть такая - из одного большого массива получить два, где сумма элементов больше или равна 3? Вполне вероятно, это вообще решается одной строчкой, только вот я об этом не знаю...
Последнее редактирование: