【发布时间】:2015-12-15 17:04:43
【问题描述】:
题名好像是重复的,我同意这个,但情况不一样。所以我没有找到适合我的解决方案。
当我尝试将 Mat 分配给 BackgroundSubtractorMOG2 或 BackgroundSubtractorKNN 时出现错误。
执行流程是这样的:
- 通过 TCP Socket 获取 JPEG 图片的字节数组。 没问题
-
将字节数组转换为 Mat 如下代码。 没问题
Mat mat = Imgcodecs.imdecode(new MatOfByte(sJpegPicBuffer), Imgcodecs.CV_LOAD_IMAGE_UNCHANGED); 如果需要转灰度,也可以转 成功地。 没问题
将 Mat 转换为 BufferedImage。 没问题
然后在 JPanel 中显示 BufferedImage。 没问题
但是
当将其分配给BackgroundSubtractor 时,问题发生了。 问题
subtractor.apply(mat, foregroundImg , -1);
注意: 我在 Java 中使用 OpenCV 3.0。当我使用网络摄像头或读取视频文件并进行相同的流程时,没有问题发生,非常顺利。
现在这个问题的原因是什么?
提前致谢!
【问题讨论】: