prosenjit
prosenjit

Reputation: 865

How to Draw a point in an image using given co-ordinate with python opencv?

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.

Upvotes: 58

Views: 189939

Answers (2)

Dhanashree Desai
Dhanashree Desai

Reputation: 1020

You can use cv2.circle() function from 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 a filled circle

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

Upvotes: 102

Mark Setchell
Mark Setchell

Reputation: 208107

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.

enter image description here


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)

enter image description here

Upvotes: 28

Related Questions