如何在基于JavaCV的OpenCV开发中获取Mat矩阵的形状
实现方案
在JavaCV的Mat类中,通过三个独立方法分别获取对应Python shape返回的三个维度参数,二者完全对齐:
rows():返回矩阵行数,对应图像高度,即Pythonshape[0]cols():返回矩阵列数,对应图像宽度,即Pythonshape[1]channels():返回矩阵通道数,即Pythonshape[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
相关产品推荐
相关产品推荐

