web-dev-qa-db-fra.com

Comment dessiner un point dans une image en utilisant une coordonnée donnée avec python opencv?

J'ai une image et une coordonnée (X, Y). Comment dessiner un point avec cette coordonnée sur l'image. Je veux utiliser Python OpenCV.

12
prosenjit

J'apprends aussi les liaisons Python avec OpenCV. Voici une façon:

#!/usr/local/bin/python3
import cv2
import numpy as np

w=40
h=20
# Make empty black image
image=np.zeros((h,w,3),np.uint8)

# Fill left half with yellow
image[:,0:int(w/2)]=(0,255,255)

# Fill right half with blue
image[:,int(w/2):w]=(255,0,0)

# Create a named colour
red = [0,0,255]

# Change one pixel
image[10,5]=red

# Save
cv2.imwrite("result.png",image)

Voici le résultat - agrandi pour que vous puissiez le voir.

enter image description here


Voici la réponse très concise, mais moins amusante:

#!/usr/local/bin/python3
import cv2
import numpy as np

# Make empty black image
image=np.zeros((20,40,3),np.uint8)

# Make one pixel red
image[10,5]=[0,0,255]

# Save
cv2.imwrite("result.png",image)

enter image description here

12
Mark Setchell

Vous pouvez utiliser le module opencv de la fonction cv2.circle ():

image = cv.circle(image, centerOfCircle, radius, color, thickness)

Conserver le rayon à 0 pour tracer un seul point et l'épaisseur comme nombre négatif pour le cercle rempli

import cv2
image = cv2.circle(image, (x,y), radius = 0, (0, 0, 255), -1)
0
Dhanashree Desai