• 大小: 18.37MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-06-18
  • 语言: 其他
  • 标签: 抠图  代码  

资源简介

可以对一个文件夹下的一系列图的同一个区域进行抠图

资源截图

代码片段和文件信息

#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个文件信息

评论

共有 条评论