【发布时间】:2018-02-27 09:08:13
【问题描述】:
我看过很多关于这个问题的帖子,但这个不同。我的代码适用于一对图像,但不适用于另一对图像。
稍后,我想将来自两个摄像头的视频输入转换为立体声输出。我已经尝试过了,但这也与下面显示的图像(第二对图像)有相同的问题。
下图给出了预期的输出
以下图片输出不正确
如何更正我的代码以使其适用于所有图像?
这是我的代码
public static void main(String[] args)
{
Mat left = Imgcodecs.imread("path", Imgcodecs.CV_LOAD_IMAGE_GRAYSCALE);
Mat right = Imgcodecs.imread("path", Imgcodecs.CV_LOAD_IMAGE_GRAYSCALE);
Core.normalize(left, left, 0, 255, NORM_MINMAX, CvType.CV_8U);
Core.normalize(right, right, 0, 255, NORM_MINMAX, CvType.CV_8U);
StereoBM bm = StereoBM.create(16, 15);
Mat disparity = new Mat();
bm.compute(left, right, disparity);
ImageProcessor.showResult(disparity);
mainFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
public static void showResult(Mat img)
{
Imgproc.resize(img, img, new Size(640, 480));
MatOfByte matOfByte = new MatOfByte();
Imgcodecs.imencode(".jpg", img, matOfByte);
byte[] byteArray = matOfByte.toArray();
BufferedImage buffImage = null;
try
{
InputStream in = new ByteArrayInputStream(byteArray);
buffImage = ImageIO.read(in);
JFrame frame = new JFrame();
frame.getContentPane().add(new JLabel(new ImageIcon(buffImage)));
frame.pack();
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frame.setVisible(true);
} catch (IOException e)
{
e.printStackTrace();
}
}
【问题讨论】:
-
为了清楚起见,请说明您的代码是“工作”和“不工作”的意思。另请说明一个问题。
-
@jwils “工作”表示“预期输出”。 “不工作”意味着“不正确的输出”