之前一直用师兄写的标注工具,很多操作感觉不太习惯。又没有源码可改,索性自己写了一个,功能比较简单。就是视频的读取和标注。
主要用鼠标的点击进行标注,第一次点击为标注框左上角的点,可以按住左键调整标注框;松开时会确定标注框(框由蓝色变为绿色);一帧中可以标注多个视频。
主要通过OpenCV的鼠标响应函数来实现:
void setMouseCallback(const string& winname, MouseCallback onMouse, void* userdata=0 );
响应鼠标操作的onMouse函数如下:
static void onMouse( int event, int x, int y, int, void* )
{
switch(event)
{
case CV_EVENT_LBUTTONDOWN:
//the left up point of the rect
is_drawing=true;
drawing_box.x=x;
drawing_box.y=y;
break;
case CV_EVENT_MOUSEMOVE:
//adjust the rect (use color blue for moving)
if(is_drawing){
drawing_box.width=x-drawing_box.x;
drawing_box.h