Cómo eliminar los bordes negros en la rotación de imágenes de Python
1) Al realizar la verificación inversa del mapeo de coordenadas de la imagen, averigüe si el punto actual está fuera o dentro de la imagen original. Si está fuera, determine la posición X o Y de la imagen. píxel actual y buscar Se reemplazan los valores de píxeles adyacentes de los cuatro límites;
Este método es demasiado engorroso y adecuado para escribir su propio programa para implementarlo. Si desea llamar a algunas funciones de biblioteca existentes, puede hacerlo. Puede considerar el método 2):
2) Rellene el límite con la imagen que se va a rotar. En el peor de los casos, se puede expandir al tamaño de la imagen original;
Rotar. la imagen que llena el límite;
Calcula la imagen original después de la rotación. El tamaño de la imagen resultante;
Captura la imagen de destino en la imagen rotada que llena el límite; se gira según el centro de la imagen); (las imágenes son ambas);
La imagen de destino se gira hacia el centro de la imagen. Rotar la imagen según el centro de la imagen);
El siguiente es un código de Matlab que alinea la cara según la posición del ojo humano:
[plain] ver plano copiar
eye_angle = atan2( (eye_pts(2, 2) - eye_pts(1, 2)), (eye_pts( 2, 1) - eye_pts(1, 1) ))* 180 / pi inclinación; ángulo del ojo humano
if eye_angle lt; ;= 5 || piso( 360 - eye_angle ) lt; = 5
Continuar
fin Sin operación de alineación dentro de 5 grados
img = imread(img_path
[m , n, ~] = tamaño(img);
img_ pad = padarray(img, [m n], 'both', 'replicar'); imagen
img_pad_rotate = imrotate (img_pad, eye_angle, 'bilinear'); Girar imagen expandida
[m_pad_r, n_pad_r, ~] = size(img_pad_rotate
[plain] Ver copia simple
eye_angle = eye_angle * pi / 180
f_cos = cos(eye_angle); f_sin = sin(eye_angle); new_m = Floor(m * abs(f_cos) n * abs(f_sin));
new_n = Floor(n * abs(f_sin) m * abs(f_cos));
izquierda = piso((n_pad_r - nuevo_n) / 2); derecha = izquierda nuevo_n;
bott = piso((m_pad_r - nuevo_m) / 2);
face_rorate = img_pad_rotate( bott: arriba, izquierda: derecha,:); capturar imagen de destino
figura, imshow(face_rorate)