You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python OpenCV在图像的指定坐标(X,Y)处绘制点

用Python OpenCV在指定坐标绘制点的方法

嘿,这事儿超简单!我来给你分享两种实用的方法,根据你的需求选就行:

方法1:用cv2.circle()画可自定义的实心点

这种方法最常用,因为你能灵活控制点的大小、颜色,哪怕要画大一点的标记也没问题。步骤如下:

  1. 先导入OpenCV库:
import cv2
  1. 读取你的图像(记得替换成自己的图片路径):
img = cv2.imread("your_image.png")
  1. 定义要画点的坐标(就是你拿到的(X, Y)):
x, y = 300, 200  # 这里替换成你的实际坐标
  1. 调用cv2.circle()画实心点:
# 参数说明:
# img:要绘制的图像
# (x, y):点的坐标(注意是(X,Y),对应图像的列、行)
# radius:点的半径,数值越大点越大
# color:点的颜色,OpenCV用BGR格式,比如(0,0,255)是红色
# thickness:线条粗细,设为-1表示实心填充
cv2.circle(img, (x, y), radius=3, color=(0, 0, 255), thickness=-1)
  1. 查看结果或者保存图像:
# 显示图像
cv2.imshow("Image with Point", img)
cv2.waitKey(0)  # 按任意键关闭窗口
cv2.destroyAllWindows()

# 或者保存修改后的图像
cv2.imwrite("image_with_point.png", img)

方法2:直接修改像素值画单个像素点

如果只需要画一个极小的像素点,直接修改对应位置的像素值更高效,但要注意OpenCV的图像索引规则:

import cv2

img = cv2.imread("your_image.png")
x, y = 300, 200

# 重点!OpenCV中图像的索引是 (行, 列),对应(Y, X),所以是img[y, x]
# 设置像素颜色为绿色(BGR格式)
img[y, x] = (0, 255, 0)

# 后续显示/保存和方法1一样
cv2.imshow("Single Pixel Point", img)
cv2.waitKey(0)
cv2.destroyAllWindows()

几个注意事项

  • 确保你的坐标(x,y)在图像范围内:可以用height, width = img.shape[:2]获取图像的高度(Y范围0到height-1)和宽度(X范围0到width-1),超出范围的坐标不会有效果。
  • OpenCV默认用BGR颜色空间,如果你习惯RGB,记得先转换:img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB),但画点时还是要对应调整颜色值。

内容的提问来源于stack exchange,提问作者prosenjit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:50:25