opencv视频捕获速度非常慢,具有高分辨率视频
我正在尝试使用OpenCV VideoCapture读取高分辨率视频,但速度似乎非常慢。我在某个地方读到改变缓冲区大小可能会有所帮助,但我尝试设置各种缓冲区大小,但仍然很慢。 非常感谢您在这里提供的关于哪些设置有助于提高java opencv高分辨率视频的阅读能力的帮助 我正在使用VideoCapture从磁盘读取视频。我正在使用MacOSX。以下是我的代码片段:opencv视频捕获速度非常慢,具有高分辨率视频,opencv,video-capture,Opencv,Video Capture,我正在尝试使用OpenCV VideoCapture读取高分辨率视频,但速度似乎非常慢。我在某个地方读到改变缓冲区大小可能会有所帮助,但我尝试设置各种缓冲区大小,但仍然很慢。 非常感谢您在这里提供的关于哪些设置有助于提高java opencv高分辨率视频的阅读能力的帮助 我正在使用VideoCapture从磁盘读取视频。我正在使用MacOSX。以下是我的代码片段: while(camera.read(frame)) { BufferedImage bufferedImage = MatT
while(camera.read(frame))
{
BufferedImage bufferedImage = MatToBufferedImage(frame);
BufferedImage scaledImage = (BufferedImage)getScaledImage(bufferedImage, frameWidth, frameHeight);
ImageIcon icon = new ImageIcon(scaledImage);
publish(icon);
}
我正在使用swingworker并在后台线程中执行此操作。
我没有明确设置任何openCV属性。我不确定是否应该设置任何显式属性
以下是我观察到的:我的视频开始时很好,然后大约在第50帧左右,我看到一些延迟,然后在第120帧左右再次出现,几乎完全停止在第190ish帧。您尝试过调整单个帧的大小吗
while(camera.read(frame))
{
resize(frame,frame,Size(640,360));
imshow("frame",frame);
}
一些额外的细节可能会有所帮助:你用的是什么相机?这是什么操作系统?你所说的“非常慢”是什么意思?你能给我们一个帧数/秒的数字吗?如果一个本来快乐的应用程序慢到爬行速度,很可能是因为它正在泄漏内存,即在不释放或释放内存的情况下分配越来越多的内存。虽然我不是Java程序员,但我看不到循环中的内存有任何释放。尝试在代码运行时运行macOS的
活动监视器
,并观察内存。