Я использовал метод Projection Profile для своих двоичных изображений, чтобы получить версию с исправлением перекоса. Все в порядке, но на повернутом изображении есть черные области, где было применено выравнивание. Как преобразовать эту область в белую вместо черной. Ниже приведен код профиля проекции.
Я использовал метод Projection Profile для своих двоичных изображений, чтобы получить версию с исправлением перекоса. Все в порядке, но на повернутом изображении есть черные области, где было применено выравнивание. [b]Как преобразовать эту область в белую вместо черной[/b]. Ниже приведен код профиля проекции. [code]def correct_skew(image, delta=1, limit=5): """ image : input delta : sampling in the -limit,limit + delta range limit : range of angles to explore
""" # Function that returns the score of histogram for the given angle at which we check def determine_score(arr, angle): """ arr : binarized image angle : angle at which we calcuate the score """ data = inter.rotate(arr, angle, reshape=False, order=0) histogram = np.sum(data, axis=1) score = np.sum((histogram[1:] - histogram[:-1]) ** 2) return histogram, score
scores = [] angles = np.arange(-limit, limit + delta, delta) for angle in angles: histogram, score = determine_score(thresh, angle) scores.append(score)
best_angle = angles[scores.index(max(scores))]
(h, w) = image.shape[:2] center = (w // 2, h // 2) M = cv2.getRotationMatrix2D(center, best_angle, 1.0) rotated = cv2.warpAffine(image, M, (w, h), flags=cv2.INTER_CUBIC)
return best_angle, rotated [/code] Это изображение после исправления перекоса: [img]https://i.sstatic.net /kVmmd.png[/img]