不再纠结OpenCV图像中的x,y;width,height;cols,rows

x:横坐标

y:纵坐标

width:宽度

height:高度

cols:代表有多少列,其实就是x

rows:代表有多少行,其实就是y

具体关系下图一目了然,虽然画得丑,但是别嫌弃!


### OpenCV 中获取图像矩阵行数列数的方法 在 OpenCV 中,图像被表示为 `ndarray` 类型的多维数组[^1]。由于这种数据结构的存在,可以通过访问 `shape` 属性来轻松获得图像度(即行数)度(即列数)。对于一幅彩色图片而言,其形状会返回一个三元组 `(height, width, channels)`;而对于灰度图,则只会给出前两个维度的信息。 具体来说,在 Python 版本的 OpenCV 库里,如果有一个名为 img 的图像变量: ```python import cv2 img = cv2.imread('example.jpg') # 加载一张测试图片 rows, cols, _ = img.shape # 获取行数(rows) 列数(cols),忽略第三个参数channels print(f'Image has {rows} rows and {cols} columns.') ``` 这段代码展示了如何加载一副图像并提取它的尺寸信息。注意这里的 `_` 是用来丢弃不关心的颜色通道数量。 另外值得注意的是,当处理来自不同源或者准备用于其他框架中的图像时,可能需要注意色彩空间的一致性问题。因为正如所提到过的那样,OpenCV 默认采用 BGR 色彩模式而不是更常见的 RGB 模式[^2]。 #### 关于 Mat 对象 而在 C++ API 下面,`Mat` 类提供了更加丰富的接口去操作这些属性。比如可以直接调用成员函数 `.size()` 或者直接读取`.rows`, `.cols` 成员变量来得到相应的数值[^3]。 ```cpp cv::Mat image; image = cv::imread("example.png"); int height = image.rows; // 获取度 (行数) int width = image.cols; // 获取度 (列数) std::cout << "Height: " << height << ", Width:" << width << std::endl; ``` 上述例子演示了怎样利用C++版本下的OpenCV库来进行相同的操作。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值