-
大小: 1.01MB文件類型: .rar金幣: 2下載: 0 次發(fā)布日期: 2023-09-27
- 語(yǔ)言: 其他
- 標(biāo)簽:
資源簡(jiǎn)介
這個(gè)小工具用于在裁剪圖像部分區(qū)域時(shí)記錄坐標(biāo)。相信用AdaBoost算法進(jìn)行人臉檢測(cè)的同志們一定對(duì)于一開(kāi)始收集、裁剪物體樣本的過(guò)程記憶猶新,那是一個(gè)純體力活兒。有了這個(gè)小工具,可以極大的加快進(jìn)程。不搞目標(biāo)識(shí)別的同志們也可以來(lái)試試,很好玩的!用鼠標(biāo)在圖上圈定區(qū)域,按空格可記錄坐標(biāo),按回車處理下一圖。

代碼片段和文件信息
#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?< /*
*?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);
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件????1187898??2006-09-12?18:23??ob
?????文件?????512070??2006-09-12?18:25??ob
?????文件?????512000??2006-09-12?18:23??ob
?????文件??????????0??2008-06-03?11:44??ob
?????文件?????????70??2003-06-18?20:25??ob
?????文件???????3867??2003-06-09?12:38??ob
?????文件?????520281??2003-06-10?12:54??ob
?????文件?????312118??2003-06-05?15:11??ob
????..A.SH.??????4608??2006-11-02?19:49??ob
?????文件???????1293??2003-06-18?20:43??ob
?????目錄??????????0??2008-04-28?08:23??ob
?????目錄??????????0??2008-04-28?08:23??ob
-----------?---------??----------?-----??----
??????????????3054205????????????????????12
評(píng)論
共有 條評(píng)論