简单理解opencv中的坐标系,x,y,h,w

在查阅opencv有关的技术文章时,经常能够看到如下风格的函数头:

cv2.rectangle(frame, (x_min, y_min), (x_max, y_max), color, 2)

那么这里的x究竟是指图像从左往右数,还是从上往下数呢?

这里直接给出结论:在图片img上画矩形,坐标原点是图片左上角,向右为x轴正方向,向下为y轴正方向:

在这里插入图片描述


上面介绍的是x,y的概念。那么height,width又是什么情况呢?考虑如下代码:

import numpy as np
import cv2

img = np.zeros([100, 500])
cv2.imshow("img", img)
cv2.waitKey()
cv2.destroyAllWindows() 

其创建的为高100,宽500的图像(100行,500列的像素矩阵)。因此,以下代码:

img[50, 250]

访问的是第50行,第250列的像素,即opencv坐标系中的(x = 250, y = 50)。

仔细思考容易发现,二维矩阵的第50行在opencv坐标系中对应的是y=50,而非x=50。


总结,使用cv2中的有关函数时,里面的x,y按照上面说的坐标轴来算;而如果自己手工直接访问图像numpy数组,那么此时的顺序与opencv中的xy顺序是对调的,需要按照矩阵原生的行列规则来。

  • 2
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OpenCV,像素坐标系是指图像上的点的坐标表示方式,而世界坐标系是指物体在现实世界坐标表示方式。通常,我们需要将像素坐标转换为世界坐标,或者将世界坐标转换为像素坐标。为了实现这种转换,我们可以利用相机的内参、畸变参数和外参等标定参数。 首先,我们需要读取标定文件,并提取出标定参数,包括相机的内参、畸变参数和外参等。然后,我们可以利用这些参数将世界坐标的点转换为像素坐标。这一步骤可以通过使用OpenCV的函数来实现,例如`cv2.projectPoints()`函数。 另外,我们也可以通过手动估计的非亚像素坐标点将其转换为世界坐标,然后将其映射到图像上,通过比较转换后的像素坐标和输入的差距来评估转换的准确性。 总的来说,通过读取标定文件的参数或手动估计的坐标点,我们可以实现Opencv像素坐标系到世界坐标系的转换。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [OpenCV学习——图像坐标系,相机坐标系和世界坐标系](https://blog.csdn.net/AileenNut/article/details/76922534)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [基于opencv的用于精确测量的单目相机标定,世界坐标和像素坐标相互转换](https://blog.csdn.net/m0_68681926/article/details/128003512)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值