How to Draw a point in an image using given co-ord

2020-06-09 12:03发布

问题:

I have one image and one co-ordinate (X, Y). How to draw a point with this co-ordinate on the image. I want to use Python OpenCV.

回答1:

I'm learning the Python bindings to OpenCV too. Here's one way:

#!/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)

Here's the result - enlarged so you can see it.


Here's the very concise, but less fun, answer:

#!/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)



回答2:

You can use cv2.circle() function opencv module:

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

Keep radius as 0 for plotting a single point and thickness as a negative number for filled circle

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