Leptonica OpenCV Java convert Mat to Pix and vise versa

喜夏-厌秋 提交于 2019-12-02 00:39:15

Try the following:

public static Pix convertMatToPix(Mat mat) {
    MatOfByte bytes = new MatOfByte();
    Imgcodecs.imencode(".tif", mat, bytes);
    ByteBuffer buff = ByteBuffer.wrap(bytes.toArray());
    return Leptonica1.pixReadMem(buff, new NativeSize(buff.capacity()));
}

public static Mat convertPixToMat(Pix pix) {
    PointerByReference pdata = new PointerByReference();
    NativeSizeByReference psize = new NativeSizeByReference();
    Leptonica1.pixWriteMem(pdata, psize, pix, ILeptonica.IFF_TIFF);
    byte[] b = pdata.getValue().getByteArray(0, psize.getValue().intValue());
    Leptonica1.lept_free(pdata.getValue());
    return Imgcodecs.imdecode(new MatOfByte(b), Imgcodecs.CV_LOAD_IMAGE_UNCHANGED);
}
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!