У меня есть 2d-массив (28 x 28), который имеет логические значения.
array([[False, False, False, False, False, False, False, False, False,
False, False, False, False, False, False, False, False, False,
False, False, False, False, False, False, False, False, False,
False],
[False, False, False, False, False, False, False, False, False,
False, False, False, False, False, False, False, False, False,
False, False, False, False, False, False, False, False, False,
False],
[False, False, False, False, False, False, False, False, False,
False, False, False, False, False, False, False, False, False,
False, False, False, False, False, False, False, False, False,
False],
[False, False, False, False, False, False, False, False, False,
False, False, False, False, False, False, False, False, False,
False, False, False, False, False, False, False, False, False,
False],
[False, False, False, False, False, False, False, False, False,
False, False, False, False, False, False, False, True, True,
True, False, False, False, False, False, False, False, False,
False],
[False, False, False, False, False, False, False, False, False,
False, False, False, False, False, False, True, True, True,
True, True, False, False, False, False, False, False, False,
False],
[False, False, False, False, False, False, False, False, False,
False, False, False, False, False, True, True, True, True,
True, True, False, False, False, False, False, False, False,
False],
...
Это представляет собой изображение цифры.Чтобы растянуть это изображение так, чтобы горизонтальный и вертикальный диапазон пикселей чернил соответствовал полному горизонтальному / вертикальному диапазону рамки.
Ниже приведены шаги, которые я пытаюсь предпринять:
1. Find the leftmost (x_min) and the rightmost (x_max) pixels that have ink (after thresholding).
2. Find the topmost (y_min) and bottom-most (y_max) pixels similarly.
3. Find the centerpoint (x,y) by taking the mean of x_min and x_max and y_min and y_max respectively.
4. Now, the 20x20 bounding is defined as img[y_center-10 : y_center + 10, x_center-10:x_center+10]
Я пытался сделать Step 1
наивным способом, просто итерируя все пиксели, но я знаю, что это не лучший способ.Как лучше всего найти левый и правый пиксель, True
?