polylines - Cómo dibujar un rectángulo alrededor de una región de interés en python
polylines opencv python (2)
Estoy teniendo problemas con la import cv
en mi código de Python.
Mi problema es que necesito dibujar un rectángulo alrededor de las regiones de interés en una imagen. ¿Cómo se puede hacer esto en python? Estoy haciendo detección de objetos y me gustaría dibujar un rectángulo alrededor de los objetos que creo que he encontrado en la imagen.
Puedes usar cv2.rectangle()
:
cv2.rectangle(img, pt1, pt2, color, thickness, lineType, shift)
Draws a simple, thick, or filled up-right rectangle.
The function rectangle draws a rectangle outline or a filled rectangle
whose two opposite corners are pt1 and pt2.
Parameters
img Image.
pt1 Vertex of the rectangle.
pt2 Vertex of the rectangle opposite to pt1 .
color Rectangle color or brightness (grayscale image).
thickness Thickness of lines that make up the rectangle. Negative values,
like CV_FILLED , mean that the function has to draw a filled rectangle.
lineType Type of the line. See the line description.
shift Number of fractional bits in the point coordinates.
Tengo un objeto PIL Image y quiero dibujar un rectángulo en esta imagen, pero el método ImageDraw.rectangle() PIL no tiene la capacidad de especificar el ancho de línea. Necesito convertir el objeto de imagen al formato de imagen de opencv2 y dibujar un rectángulo y volver a convertir al objeto de imagen . Así es como lo hago:
# im is a PIL Image object
im_arr = np.asarray(im)
# convert rgb array to opencv''s bgr format
im_arr_bgr = cv2.cvtColor(im_arr, cv2.COLOR_RGB2BGR)
# pts1 and pts2 are the upper left and bottom right coordinates of the rectangle
cv2.rectangle(im_arr_bgr, pts1, pts2),
color=(0, 255, 0), thickness=3)
im_arr = cv2.cvtColor(im_arr_bgr, cv2.COLOR_BGR2RGB)
# convert back to Image object
im = Image.fromarray(im_arr)
por favor, no intentes con el viejo módulo cv, usa cv2:
import cv2
cv2.rectangle(img, (x1, y1), (x2, y2), (255,0,0), 2)
x1,y1 ------
| |
| |
| |
--------x2,y2
[editar] para agregar las siguientes preguntas a continuación:
cv2.imwrite("my.png",img)
cv2.imshow("lalala", img)
k = cv2.waitKey(0) # 0==wait forever