J'ai des problèmes avec import cv
dans mon code python.
Mon problème est que je dois dessiner un rectangle autour des régions d’intérêt dans une image ..___ Comment cela peut-il être fait en python? Je suis en train de détecter des objets et j'aimerais dessiner un rectangle autour des objets que je crois avoir trouvés dans l'image.
veuillez ne pas essayer avec l'ancien module cv, utilisez cv2:
import cv2
cv2.rectangle(img, (x1, y1), (x2, y2), (255,0,0), 2)
x1,y1 ------
| |
| |
| |
--------x2,y2
[edit] pour ajouter les questions suivantes:
cv2.imwrite("my.png",img)
cv2.imshow("lalala", img)
k = cv2.waitKey(0) # 0==wait forever
Vous pouvez utiliser 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.
J'ai un objet Image PIL et je veux dessiner un rectangle sur cette image, mais la méthode ImageDraw.rectangle () de PIL ne permet pas de spécifier la largeur de trait .Je dois convertir l'objet Image en Le format d'image opencv2, dessinez un rectangle et reconvertissez-le en objet Image. Voici comment je le fais:
# 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)