OpenCV Java RGB BGR

OpenCV Java RGB BGR

我尝试了几次使用 OpenCV 在 Java 中获取正常视频,但我一直在切换颜色:我的意思是当我 运行 程序蓝色在视频中变成橙色时。

这是我的代码:

public class Mat2Image {

    BufferedImage img;
    Mat mat = new Mat();
    byte[] dat;
    int elemSize;
    public Mat2Image() {
    }
    public Mat2Image(Mat mat) {
        getSpace(mat);
    }
    public void getSpace(Mat mat) {
        this.mat = mat;
        elemSize=(int)mat.elemSize();
        int w = mat.cols(), h = mat.rows();
        if (dat == null || dat.length != w * h * elemSize)
            dat = new byte[w * h * elemSize];

              if (img == null || img.getWidth() != w || img.getHeight() != h
            || img.getType() != BufferedImage.TYPE_3BYTE_BGR)
           img = new BufferedImage(w, h,BufferedImage.TYPE_3BYTE_BGR);

        }
        BufferedImage getImage(Mat mat){
            getSpace(mat);
//        byte b;
//        for(int i=0;i<dat.length;i=i+3){
//           b=dat[i];
//           dat[i]=dat[i+2];
//           dat[i+2]=b;
//        }
            mat.get(0, 0, dat);
            img.getRaster().setDataElements(0, 0, 
                               mat.cols(), mat.rows(), dat);
        return img;
    }
    static{
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);

    }

}

来自评论区page with some extremely similar code: comment