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

OpenCV中的图像坐标原点在左上角,x轴向右,y轴向下。矩形函数如cv2.rectangle()的坐标参数遵循此规则。而在numpy数组中访问像素时,行优先,即(img[y,x]),与OpenCV的坐标顺序相反。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在查阅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顺序是对调的,需要按照矩阵原生的行列规则来。

回答: 发生"Required request parameter 'code' for method parameter type String is not present"的错误通常是由于没有向后端传递所需的参数值造成的。这可能是因为参数值为空或不存在导致的。另外,还需要检查前端请求方式和后端接收方式是否一致。例如,如果前端使用get params进行请求,则后端应使用@GetMapping @RequestParam来接收数据;如果前端使用post data进行请求,则后端应使用@PostMapping @RequestBody来接收数据。请确保参数变量已经定义并且有值。关于Axios请求和Java后端接收的详细信息,可以参考中提供的文章链接。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Required request parameter ‘xxx‘ for method parameter type xxxx is not present 解决方式](https://blog.csdn.net/m0_49161353/article/details/124156909)[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^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [使用axios传输数据时出现Required request parameter ‘xxx‘ for method parameter type String is not ...](https://blog.csdn.net/m0_64284147/article/details/123597915)[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^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [Required request parameter ‘xxxxxx‘ for method parameter type xxxx is not present 解决方式](https://blog.csdn.net/eyouhs/article/details/129674765)[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^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值