• 大小: 4.1MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-10-12
  • 语言: 其他
  • 标签: object  样本生成  

资源简介

用于生成机器学习正样本的标注工具,内含使用说明和图片格式批量转换工具(bat文件)

资源截图

代码片段和文件信息

#include “cv.h“
#include “cvaux.h“
#include “highgui.h“

// for filelisting
#include 
#include 
// for fileoutput
#include 
#include 
#include 

using namespace std;

IplImage* image=0;
IplImage* image2=0;
int start_roi=0;
int roi_x0=0;
int roi_y0=0;
int roi_x1=0;
int roi_y1=0;
int numOfRec=0;
char* window_name=“add save and load next exit“;

string IntToString(int num)
{
ostringstream myStream; //creates an ostringstream object
myStream << num << flush;
/*
* outputs the number into the string stream and then flushes
* the buffer (makes sure the output is put into the stream)
*/
return(myStream.str()); //returns the string form of the stringstream object
};

void on_mouse(int eventint xint yint flag)
{
    if(event==CV_EVENT_LBUTTONDOWN)
    {
start_roi=1;
roi_x0=x;
roi_y0=y;
    }
    if(event==CV_EVENT_MOUSEMOVE && flag==CV_EVENT_FLAG_LBUTTON)
    {
roi_x1=x;
roi_y1=y;

//redraw ROI selection
image2=cvCloneImage(image);
cvRectangle(image2cvPoint(roi_x0roi_y0)cvPoint(roi_x1roi_y1)CV_RGB(2550255)1);
cvShowImage(window_nameimage2);
cvReleaseImage(&image2);
    }
    if(event==CV_EVENT_LBUTTONUP)
    {
start_roi=0;
    }
}

int main(int argc char** argv)
{

struct _finddata_t bmp_file;
    long hFile;
int iKey=0;

// get *.bmp files in directory
if((hFile=_findfirst(“rawdata/*.bmp“&bmp_file))==-1L)
printf(“no *.bmp files in directory ‘rawdata‘\n“);
else
{

// init highgui
cvAddSearchPath(“rawdata“);
cvNamedWindow(window_name1);
cvSetMouseCallback(window_nameon_mouse);

// init output of rectangles to the info file
ofstream output(“info.txt“);

string strPrefix;
string strPostfix;

// open every *.bmp file
do
{
printf(“ %-12s\n“bmp_file.name);

numOfRec=0;
strPostfix=““;
strPrefix=“rawdata/“;
strPrefix+=bmp_file.name;

image=cvLoadImage(bmp_file.name1);

// work on current image
do
{
cvShowImage(window_nameimage);

// used cvWaitKey returns:
// =13 save added rectangles and show next image
// =27 exit program
// =32 add rectangle to current image
//  any other key clears rectangle drawing only
iKey=cvWaitKey(0);
switch(iKey)
{
case 27:
cvReleaseImage(&image);
cvDestroyWindow(window_name);
return 0;
case 32:
numOfRec++;
// currently two draw directions possible:
// from top left to bottom right or vice versa
if(roi_x0 {
printf(“   %d. rect x=%d\ty=%d\twidth=%d\theight=%d\n“numOfRecroi_x0roi_y0roi_x1-roi_x0roi_y1-roi_y0);
// append rectangle coord to previous line content
strPostfix+=“ “+IntToString(roi_x0)+“ “+IntToString(roi_y0)+“ “+IntToString(roi_x1-roi_x0)+“ “+IntToString(roi_y1-roi_y0);

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-03-27 14:13  objectmarker\
     文件      312118  2003-06-05 15:11  objectmarker\8schuessel.bmp
     文件     1187898  2006-09-12 18:23  objectmarker\CV.dll
     文件      512070  2006-09-12 18:25  objectmarker\cvaux.dll
     文件      512000  2006-09-12 18:23  objectmarker\highgui.dll
     文件           0  2019-03-27 14:07  objectmarker\info.txt
     文件          15  2019-03-26 17:22  objectmarker\jpg转bmp.bat
     文件        3867  2003-06-09 12:38  objectmarker\objectmarker.cpp
     文件      520281  2003-06-10 12:54  objectmarker\objectmarker.exe
     目录           0  2019-03-26 16:00  objectmarker\rawdata\
     文件     6220854  2019-03-26 16:00  objectmarker\rawdata\20190324054310.bmp
     文件        4608  2006-11-02 19:49  objectmarker\rawdata\Thumbs.db
     文件        1293  2003-06-18 20:43  objectmarker\readme.txt
     文件         312  2019-03-27 14:12  objectmarker\使用说明.txt

评论

共有 条评论