資源簡介
可以對一個文件夾下的一系列圖的同一個區域進行摳圖
代碼片段和文件信息
#include?“stdio.h“?
#include?“cv.h“
#include?“highgui.h“
#include?“cxcore.h“
#include?
#include?
#include?
#include?“opencv\cv.h“?
#include???
#include???
;??
using?namespace?std;?
using?namespace?cv;?
extern?void?MouseDraw(int?eventint?xint?yint?flagsvoid*param);
struct?MouseArgs
{?
????IplImage*?img;
????CvPoint?p_start;
????CvPoint?p_end;
????CvSeq*?seq;
????CvMemStorage*?storage;
????int?points;?
????//?init
????MouseArgs():img(0)points(0)
{
????????p_start?=?cvPoint(-1-1);
p_end?=?cvPoint(-1-1);
????????storage?=?cvCreateMemStorage(0);
????????seq?=?cvCreateSeq(?CV_32SC2sizeof(CvSeq)sizeof(CvPoint)?storage?);
????}
????//?destroy
?????void?Destroy()
?{?
????????if(!img)
cvReleaseImage(&img);
????????cvReleaseMemStorage(&storage?);
????????seq?=?NULL;
????????img?=?NULL;
??????}
};?
????????IplImage*??pScr;
IplImage*??mask;
IplImage*??roi?;
char?file_img[100];
char?file_dst[100];
int??main(?int?argcchar**?argv?)
{?
string?dir_path?=?“E:/test/“;??
Directory?dir;?
vector?fileNames?=?dir.GetListFiles(dir_path?“*.jpg“?false);?
string?fileName?=?fileNames[0];?
string?fileFullName?=?dir_path?+?fileName;
IplImage*?pImg_org=?cvLoadImage(fileFullName.c_str()1);??
????//IplImage*?pImg_org?=?cvLoadImage(“1.jpg“);
????if(!pImg_org)
{
cout<<“cann‘t?load?image!“< return-1;?
}
????//?回調參數
????MouseArgs*?m_arg?=new?MouseArgs();
????m_arg->img?=?cvCloneImage(pImg_org);
????//?畫圖窗口
????cvNamedWindow(“Draw?ROI“CV_WINDOW_AUTOSIZE);
????//?設置鼠標事件的回調函數
????cvSetMouseCallback(“Draw?ROI“MouseDraw(void*)m_arg);?
????//?拖動鼠標作畫
????while(1)
???{????????cvShowImage(“Draw?ROI“m_arg->img);
//?按?esc?鍵退出繪圖模式,獲得矩形
????????if(cvWaitKey(100)==27)
????????????break;
}
?????if(m_arg->points?1)
? return?0;?
????//cout<points?<
CvPoint*?PointArr?=new?CvPoint[m_arg->points];//申請動態內存
cvCvtSeqToArray(m_arg->seq?PointArr);
mask?=?cvCreateImage(?cvGetSize(pImg_org)?8?1?);
cvZero(mask);
????????cvFillConvexPoly(maskPointArrm_arg->pointscvScalarAll(255)CV_AA0);
roi?=?cvCreateImage(?cvGetSize(pImg_org)?8?3?);
//string?dir_path?=?“E:/test/“;??
//Directory?dir;?
//vector?fileNames?=?dir.GetListFiles(dir_path?“*.jpg“?false);??
for(unsigned?int?i=0;i {
?????string?fileName?=?fileNames[i];?
?string?fileFullName?=?dir_path?+?fileName;???
?pScr?=?cvLoadImage(fileFullName.c_str()1);??
?if(!pScr)??
????{??
?????????break;??
?????}??
?????cvCopy(pScrroimask);
?cvNamedWindow(“ROI“CV_WINDOW_AUTOSIZE);
?????cvShowImage(“ROI“roi);
?sprintf(file_dst?“E:\\result\\\%d.jpg“?i+1);//保存圖片
?????cvSaveImage(file_dst?roi);
?char?c?=?cvWaitKey(2500);
if?(c?==?27)
{
break;
}
}
cvWaitKey(0);
cvDestroyAllWindows();
cvR
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2015-03-22?13:38??摳圖代碼\
?????文件?????????103??2015-03-22?13:40??摳圖代碼\readme.txt
?????目錄???????????0??2015-03-22?13:37??摳圖代碼\result\
?????文件???????32462??2015-03-22?13:36??摳圖代碼\result\0.jpg
?????文件???????28882??2015-03-22?13:36??摳圖代碼\result\1.jpg
?????文件???????23038??2015-03-22?13:36??摳圖代碼\result\10.jpg
?????文件???????26081??2015-03-22?13:36??摳圖代碼\result\2.jpg
?????文件???????22421??2015-03-22?13:36??摳圖代碼\result\3.jpg
?????文件???????24459??2015-03-22?13:36??摳圖代碼\result\4.jpg
?????文件???????25126??2015-03-22?13:36??摳圖代碼\result\5.jpg
?????文件???????26626??2015-03-22?13:36??摳圖代碼\result\6.jpg
?????文件???????26316??2015-03-22?13:36??摳圖代碼\result\7.jpg
?????文件???????25280??2015-03-22?13:36??摳圖代碼\result\8.jpg
?????文件???????23441??2015-03-22?13:36??摳圖代碼\result\9.jpg
?????目錄???????????0??2015-03-22?13:37??摳圖代碼\test\
?????文件???????25600??2014-01-14?17:08??摳圖代碼\test\JC-C-130913104500-A-15950460036.jpg
?????文件???????32768??2014-01-14?15:36??摳圖代碼\test\JC-C-131014104500-A-15950460036.jpg
?????文件???????21504??2014-01-14?15:34??摳圖代碼\test\JC-C-131015104500-A-15950460036.jpg
?????文件???????24576??2014-01-14?15:34??摳圖代碼\test\JC-C-131015162417-A-15950460036.jpg
?????文件???????21504??2014-01-14?15:34??摳圖代碼\test\JC-C-131016160226-A-15950460036.jpg
?????文件???????20480??2014-01-14?15:34??摳圖代碼\test\JC-C-131017104500-A-15950460036.jpg
?????文件???????23552??2014-01-14?15:34??摳圖代碼\test\JC-C-131017160219-A-15950460036.jpg
?????文件???????31744??2014-01-14?15:34??摳圖代碼\test\JC-C-131018104500-A-15950460036.jpg
?????文件???????22528??2014-01-14?15:34??摳圖代碼\test\JC-C-131018160228-A-15950460036.jpg
?????文件???????19456??2014-01-14?15:34??摳圖代碼\test\JC-C-131020160217-A-15950460036.jpg
?????文件???????26624??2014-01-14?15:34??摳圖代碼\test\JC-E-131016143613-A-15950460036.jpg
?????目錄???????????0??2015-03-23?20:43??摳圖代碼\程序\
?????目錄???????????0??2015-03-23?17:35??摳圖代碼\程序\Debug\
?????文件???????58368??2015-03-23?20:42??摳圖代碼\程序\Debug\test.exe
?????文件?????????406??2015-03-21?20:45??摳圖代碼\程序\Debug\test.exe.manifest
?????文件??????592316??2015-03-23?20:42??摳圖代碼\程序\Debug\test.ilk
............此處省略53個文件信息
- 上一篇:電子科大隨機過程往年考試題
- 下一篇:IDL可視化工具入門與提高
評論
共有 條評論