Часть изображения в массив NumPy - PullRequest
0 голосов
/ 20 апреля 2019

Я работаю над проектом по распознаванию судоку в реальном времени и столкнулся с проблемой. Я хочу взять часть изображения, скажем, часть судоку, которая уже была распознана (как на рисунке ниже), и превратить его в массив для будущих манипуляций.

часть судоку :

Part of the sudoku

Если вы блуждаете, эти прямоугольники рисуются с 4 очками, собранными этой частью моей программы:

contours, hierarchy = findContours( thresh.copy(), RETR_TREE, CHAIN_APPROX_SIMPLE)

for cnt in contours:
    rect = minAreaRect(cnt)
    if rect[1][0] > 80:
        box = boxPoints(rect)
        box = np.int0(box)
        if thresh[box[0][1], box[0][0]] != 0:
            for coord in box:
                coords.append(coord)
            approx = approxPolyDP(box,0.01*arcLength(box,True),True)
            drawContours(img,[approx],0,(255,0,0),2)

Я не нашел решения в интернете, поэтому я спрашиваю: есть ли способ сделать это?

1 Ответ

2 голосов
/ 21 апреля 2019

Вы можете использовать ограничивающие контуры точки, чтобы обрезать изображение с нарезкой и сохранить его в новом массиве:

# (x1, y1) is the top-left bounding point
# (x2, y2) is the bottom-right bounding point
sudoku_box = img[y1:y2, x1:x2]
...