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

如何在基于JavaCV的OpenCV开发中获取Mat矩阵的形状

实现方案

在JavaCV的Mat类中,通过三个独立方法分别获取对应Python shape返回的三个维度参数,二者完全对齐:

  • rows():返回矩阵行数,对应图像高度,即Python shape[0]
  • cols():返回矩阵列数,对应图像宽度,即Python shape[1]
  • channels():返回矩阵通道数,即Python shape[2]

Kotlin 示例代码

你可以直接调用这三个方法输出结果:

val matrix: Mat = imread("data/Pixel_Artistry.jpeg")
// 输出格式和Python print(image.shape)完全一致
println("(${matrix.rows()}, ${matrix.cols()}, ${matrix.channels()})")

如果想要和Python类似的调用方式,可以扩展Mat类自定义shape属性:

// 扩展属性定义
val Mat.shape: Triple<Int, Int, Int>
    get() = Triple(rows(), cols(), channels())

// 调用示例
println(matrix.shape)

Java 示例代码

如果使用Java开发,写法如下:

Mat matrix = imread("data/Pixel_Artistry.jpeg");
System.out.printf("(%d, %d, %d)%n", matrix.rows(), matrix.cols(), matrix.channels());

注意:单通道灰度图场景下channels()返回值为1,和Python OpenCV的返回结果完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 04:45:04