当我运行以下代码时,相机窗口弹出。但是,当我按I绘制ROI之后,它就转储了。再次运行时出现错误。
我尝试通过添加libv4l / v4l2来重新编译OpenCV,并且我确定我拥有正确的摄像头界面。
#include "particleFilterTracking.h"
#include "getInitialRect.h"
#include <iostream>
using namespace std;
int main (int argc, char** argv)
{
//Mat img=imread("img2.jpeg");
Mat img;
VideoCapture video(0);
while(1)
{
video>>img;
imshow("GetInitialRect",img);
char c= waitKey(100);
if(c=='i')
break;
}
InitialRect intialRect=InitialRect();
Rect toTrack= intialRect.getInitialRect(img);
ParticleFilterTrackor trackor=ParticleFilterTrackor();
trackor.Initialize(img,toTrack);
float maxWeight=0;
while(1)
{
video>>img;
int t=trackor.ColorParticleTracking(img,toTrack, maxWeight);
cout<<t<<" "<<maxWeight<<endl;
rectangle(img,toTrack,Scalar(10,10,200),5);
imshow("img",img);
char c= waitKey(100);
if(c=='q')
break;
}
return 0;
}
这是我到目前为止遇到的错误:
(进程:8010):GStreamer-CRITICAL **:10:34:36.300: gst_element_get_state:断言“ GST_IS_ELEMENT(元素)”失败 libv4l2:错误设置像素格式:设备或资源繁忙VIDEOIO 错误:libv4l无法ioctl S_FMT libv4l2:错误设置像素格式: 设备或资源繁忙libv4l1:错误设置像素格式:设备或 资源繁忙VIDEOIO错误:libv4l无法识别VIDIOCSPICT
抛出'cv :: Exception'实例后调用terminate
what():OpenCV(3.4.2) /home/jinhua/opencv-3.4.2/modules/highgui/src/window.cpp:364:错误: (-215:断言失败)函数中的size.width> 0 && size.height> 0 'imshow'