如何从 java 的 opencv 中的位创建垫子?

How to create a mat from bits in opencv for java?

有人可以解释如何使用位串中的值创建二进制矩阵吗?

例如, 我想从位串 1111000001010101 创建我的 Mat,所以我有一个包含 2 行和 1 列的 mat 对象。

为此,我用 Mat mat = new Mat(2,1,CvType.CV_8UC1);

初始化垫对象

我可以将这些字符串转换为字节数组并使用 mat.put(0,0,bytearray) 还是我必须考虑其他事项?

稍后我想使用这种方法创建我自己的 binary descriptor,它可以与其他描述符进行比较,由 ÒRB 提取。 随着 norm(descA,descB,NORM_HAMMING)

谢谢你和最好的问候

您可以使用 Byte.parseByte()radix 为 2,例如 byte b = Byte.parseByte(str, 2); 首先将其转换为 byte,然后创建一个字节数组,然后将其转换为 Mat 对象如下:

Mat mat = Imgcodecs.imdecode(new MatOfByte(byteArray), Imgcodecs.CV_LOAD_IMAGE_UNCHANGED);