tutorial segmentacion procesamiento imagenes español deteccion colores python opencv computer-vision

segmentacion - procesamiento de imagenes opencv python



Cómo agregar un borde alrededor de una imagen en Python opencv (3)

Contesta en una linea

outputImage = cv2.copyMakeBorder( inputImage, topBorderWidth, bottomBorderWidth, leftBorderWidth, rightBorderWidth, cv2.BORDER_CONSTANT, value=color of border )

Si tengo una imagen como la de abajo, ¿cómo puedo agregar un borde alrededor de la imagen de manera que la altura y el ancho general de la imagen final aumenten, pero la altura y el ancho de la imagen original permanezcan como están en el centro?


El siguiente código agrega un borde constante de tamaño de 10 píxeles a los cuatro lados de su imagen original.

Para el color, asumí que desea utilizar el valor de gris promedio del fondo, que he calculado a partir del valor medio de las dos líneas inferiores de su imagen. Lo sentimos, algo codificado, pero muestra los consejos generales y puede adaptarse a sus necesidades.

Si deja los valores de las fronteras en la parte inferior y derecha en 0, incluso obtendrá un borde simétrico.

Otros valores para BORDER_TYPE son posibles, como BORDER_DEFAULT, BORDER_REPLICATE, BORDER_WRAP.

Para obtener más detalles, consulte: http://docs.opencv.org/trunk/d3/df2/tutorial_py_basic_ops.html#gsc.tab=0

import numpy as np import cv2 im = cv2.imread(''image.jpg'') row, col= im.shape[:2] bottom= im[row-2:row, 0:col] mean= cv2.mean(bottom)[0] bordersize=10 border=cv2.copyMakeBorder(im, top=bordersize, bottom=bordersize, left=bordersize, right=bordersize, borderType= cv2.BORDER_CONSTANT, value=[mean,mean,mean] ) cv2.imshow(''image'',im) cv2.imshow(''bottom'',bottom) cv2.imshow(''border'',border) cv2.waitKey(0) cv2.destroyAllWindows()


Prueba esto:

import cv2 img=cv2.imread("img_src.jpg") shape=img.shape w=shape[1] h=shape[0] base_size=h+20,w+20,3 #make a 3 channel image for base which is slightly larger than target img base=np.zeros(base_size,dtype=np.uint8) cv2.rectangle(base,(0,0),(w+20,h+20),(255,255,255),30)#really thick white rectangle base[10:h+10,10:w+10]=img #this works