web-dev-qa-db-fra.com

dessiner un cercle sur l'image ouverte

Im usign python et opencv pour obtenir une image de la webcam, et je veux savoir comment dessiner un cercle sur mon image, juste un simple cercle vert avec remplissage transparent

enter image description here

mon code:

import cv2
import numpy
import sys

if __name__ == '__main__':


    #get current frame from webcam
    cam = cv2.VideoCapture(0)
    img = cam.read()

    #how draw a circle????

    cv2.imshow('WebCam', img)

    cv2.waitKey()

Merci d'avance.

14
Art Grc
cv2.circle(img, center, radius, color, thickness=1, lineType=8, shift=0) → None
Draws a circle.

Parameters: 
img (CvArr) – Image where the circle is drawn
center (CvPoint) – Center of the circle
radius (int) – Radius of the circle
color (CvScalar) – Circle color
thickness (int) – Thickness of the circle outline if positive, otherwise this indicates that a filled circle is to be drawn
lineType (int) – Type of the circle boundary, see Line description
shift (int) – Number of fractional bits in the center coordinates and radius value

Utilisez le paramètre "épaisseur" uniquement pour la bordure.

17
Abhishek Thakur

Juste une information supplémentaire:

Le paramètre "centre" de la fonction de dessin d'OpenCV cv2.circle () prend un Tuple de deux entiers. Le premier est l'emplacement de largeur et le second est l'emplacement de hauteur. Cet ordre est différent de l'indexation de tableau habituelle. L'exemple suivant illustre le problème.

import numpy as np
import cv2

height, width = 150, 200
img = np.zeros((height, width, 3), np.uint8)
img[:, :] = [255, 255, 255]

# Pixel position to draw at
row, col = 20, 100

# Draw a square with position 20, 100 as the top left corner
for i in range(row, 30):
    for j in range(col, 110):
        img[i, j] = [0, 0, 255]

# Will the following draw a circle at (20, 100)?
# Ans: No. It will draw at row index 100 and column index 20.
cv2.circle(img,(row, col), 5, (0,255,0), -1)

cv2.imwrite("square_circle_opencv.jpg", img)

python opencv cv2.circle center indexing issue

15
yang5

essayer

cv2.circle(img, center, radius, color[, thickness[, lineType[, shift]]])

Voir documentation pour plus de détails

3
Rachel Gallen