El tallado de costuras es una técnica eficaz de procesamiento de imágenes con la ayuda de la cual se puede cambiar el tamaño de una imagen sin eliminar elementos importantes de la imagen. El enfoque básico es encontrar todos los píxeles continuos con baja energía de izquierda a derecha o de arriba a abajo. Después de seleccionar la región, se elimina de la imagen original, dejando solo la parte relevante de la imagen. Un mapa de energía se deriva de la imagen original que representa los detalles correspondientes de la imagen. Con la ayuda del mapa de energía, podemos identificar las costuras que se extienden de derecha a izquierda o de arriba a abajo.
¿En qué se diferencia el tallado de costura del enfoque tradicional de cambio de tamaño?
El tallado de costura es diferente del cambio de tamaño en el sentido de que en el tallado de costura todos los aspectos y elementos valiosos aún están presentes en la imagen, pero el cambio de tamaño de la imagen simplemente se copia a un tamaño más nuevo, lo que puede ser responsable de la pérdida de detalles importantes.
A continuación se muestra la implementación de la técnica de tallado de costura:
Python3
# import the necessary libraries from skimage import transform from skimage import filters import cv2 # read the input image img = cv2.imread('Seam.jpg') # convert image from BGR # to GRAY scale gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # filter out the gradient representation # image to further process for # seam carving algorithm # filters.sobel() is used to # find edges in an image filtered = filters.sobel(gray.astype("float")) for i in range(20, 180, 20): # apply seam carve to the image, # iterating over the image for # multiple frames # transform.seam_carve() can transform # the seam of image vertically as # well as horizontally carved_image = transform.seam_carve(img, filtered, 'vertical', i) # show the original image cv2.imshow("original", img) # show the carved image cv2.imshow("carved", carved_image) # print shape of both images print("Shape of original image ", img.shape) print("Shape of Carved image ", carved_image.shape) # wait cv2.waitKey(0)
Producción
Shape of original Image(667, 1000, 3) Shape of Carved image (667, 840, 3)
Nota: este código usa la versión 0.15.0 de scikit-image.
Publicación traducida automáticamente
Artículo escrito por KaranGupta5 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA