Как убрать черную рамку вокруг повернутого и замаскированного изображения в результате? OpenCv Python - PullRequest
0 голосов
/ 20 октября 2019

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

def rotateSeed(img):
rotated = imutils.rotate_bound(img, randint(0,360))
for row in range(rotated.shape[0]):
    for col in range(rotated.shape[1]):
        if (rotated[row,col,0] == 0) and (rotated[row,col,1] == 0) and (rotated[row,col,2] == 0):
            rotated[row,col] = default[0,0]
return rotated

Объяснение кода: по умолчанию цвет фона вначальное изображение. Вращение создает черную область, которую я покрываю по умолчанию.

Эта проблема возникла только у одного человека, и решение мало что объясняет. Он даже не вращался: OpenCV

Исходное изображение семян Повернутое изображение семян

1 Ответ

0 голосов
/ 21 октября 2019

Вы можете использовать этот код для вращения:

import cv2
import numpy as np

img = cv2.imread('C:\\Code\\1.jpeg')
num_rows, num_cols = img.shape[:2]

rotation_matrix = cv2.getRotationMatrix2D((num_cols/2, num_rows/2), 30, 1)
img_rotation = cv2.warpAffine(img, rotation_matrix, (num_cols, num_rows))
cv2.imshow('Rotation', img_rotation)
cv2.waitKey()
...