我正在使用下面的代碼從攝像機獲取圖像,但攝像機圖像以不同方式顯示顏色。OpenCV攝像機圖像顯示藍色
public Mat mat = new Mat();
private BufferedImage img;
private byte[] dat;
public void getSpace(Mat mat) {
this.mat = mat;
int w = mat.cols(), h = mat.rows();
if (dat == null || dat.length != w * h * 3)
dat = new byte[w * h * 3];
if (img == null || img.getWidth() != w || img.getHeight() != h || img.getType() != BufferedImage.TYPE_3BYTE_BGR)
img = new BufferedImage(w, h, BufferedImage.TYPE_3BYTE_BGR);
}
public BufferedImage getImage(Mat mat) {
getSpace(mat);
mat.get(0, 0, dat);
img.getRaster().setDataElements(0, 0, mat.cols(), mat.rows(), dat);
return img;
}
看起來像紅色和藍色通道的評論互換(綠燈仍然是綠色的,但藍燈爲紅色,瑞迪施地區很藍) – Micka
你的代碼很奇怪。是「img」一個全局變量? – Micka
@Micka不,它不公開,我現在也包括這些領域。 – PRCube