@maryaTurova

Как правильно нарезать картинку с помощью python?

Встал вопрос с нарезкой слов из картинки. Решил попробовать opencv.

В голову приходит только определить что между черными пикселями имеется большое расстояние, и по средней величины нарезать.
На словах просто, а как реализовать тяму не хватает.
  • Вопрос задан
  • 110 просмотров
Решения вопроса 1
adugin
@adugin Куратор тега Python
Проще всего использовать masked array:
import cv2
import numpy as np
from PIL import Image

img = cv2.imread('words.png', cv2.IMREAD_GRAYSCALE)

mask = img.min(axis=0) == 255.0
masked = np.ma.array(img[0, :], mask=mask)
slices = np.ma.notmasked_contiguous(masked)

pieces = [img[:, s] for s in slices]

6001bebd10c2c803620833.png
Чтобы слова не разбивались на части, сильнее заблюрьте изображение перед получением маски.

P.S. Для масштабирования достаточно передать коэффициенты по осям fx и fy:
scaled = cv2.resize(img, None, fx=2.5, fy=2.5, interpolation=cv2.INTER_AREA)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
alternativshik
@alternativshik
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы