VOID CALLBACK TimerProc2(HWND hwnd,UINT uMsg,UINT_PTR idEvent,DWORD dwTime)
{
	vector<string> fileNames = dir.GetListFiles(dir_path, "*.*", false);
	vector<string> fileNames1 = dir.GetListFiles(dir_path1, "*.*", false);
	if(i<fileNames.size())
	{
		string fileName = fileNames[i];  
		string fileName1=fileNames1[i];
		string fileFullName = dir_path + fileName;
		string fileFullName1=dir_path1+fileName1;
		_Global_Obj_Ptr->img1=imread(fileFullName);
		_Global_Obj_Ptr->img2=imread(fileFullName1);
		_Global_Obj_Ptr->OnBnClickedEnhance();	
		_Global_Obj_Ptr->OnBnClickedRegistry();
		_Global_Obj_Ptr->OnBnClickedHisfusion();
		string fileFullName2=dir_path2+fileName;
		imwrite(fileFullName2,_Global_Obj_Ptr->imgfusion);
		i++;

	}
	else
	{
		i=0;
	}
}
VOID CALLBACK TimerProc29(HWND hwnd,UINT uMsg,UINT_PTR idEvent,DWORD dwTime)
{
	vector<string> fileNames = dir.GetListFiles(dir_path, "*.*", false);
	vector<string> fileNames1 = dir.GetListFiles(dir_path1, "*.*", false);
//	_Global_Obj_Ptr->ImageName=dir.GetListFiles(dir_path2,"*.*",false);
	if(i<fileNames.size())
	{
		string fileName = fileNames[i];
		string fileName1=fileNames1[i];
		string fileFullName = dir_path + fileName;
		string fileFullName1=dir_path1+fileName1;
		_Global_Obj_Ptr->img1=imread(fileFullName);
		_Global_Obj_Ptr->img2=imread(fileFullName1);			
		_Global_Obj_Ptr->OnBnClickedLaplace();
		_Global_Obj_Ptr->OnBnClickedTarget();
		string fileFullName2=dir_path2+fileName;
		imwrite(fileFullName2,_Global_Obj_Ptr->imgfusion);
		_Global_Obj_Ptr->ImagePath[i]=fileFullName2.c_str();
		i++;

	}
	else
	{
		i=0;
	}
}
Example #3
0
void loadImages(string dirName,vector<Mat>& images,string sep)
{
    Directory directory;
    vector<string> fileNames=directory.GetListFiles(dirName);
    for (vector<string>::iterator i=fileNames.begin(); i!=fileNames.end(); i++) {
        if(endWith(toUpperCase(*i),".JPG")||endWith(toUpperCase(*i),".PNG"))
            images.push_back(imread(dirName+sep+*i));
    }
}
Example #4
0
int main(){

	string dir_path = "D:\\研究生阶段工作\\201402 CNN\\CNN分割结果的优化问题\\20140417之后的优化工作\\20140513 跑实验\\data\\NEWresize.test.img\\";
	string out_path = "D:\\研究生阶段工作\\201402 CNN\\CNN分割结果的优化问题\\20140417之后的优化工作\\20140513 跑实验\\20140519 截取四分之一grabcut\\NEWresize grabcut output\\";
	Directory dir; 
	vector<string> fileNames = dir.GetListFiles(dir_path, "*.jpg", false ); 

	for(int i=0; i < fileNames.size(); i++) {
		string fileName = fileNames[i];
		string fid = fileName.substr(0, fileName.length()-4);
		string fileFullName = dir_path + fileName; 

		Mat im;
		im = imread(fileFullName);
		//imshow("lena", im);

		Mat mask, bgdmodel, fgdmodel;
		Mat res(im.size(), CV_8UC1, Scalar(0));//存放输出的图片
		//res.create(im.size(), CV_8UC1, Scalar(0));//与上面的语句等价

		//Grabcut的rect,设置为图中央的一个大小为原图1/4的矩形。
		int width = im.size().width;
		int height = im.size().height;
		int x1 = width/4;
		int y1 = height/4;
		int x2 = width/4*3;
		int y2 = height/4*3;
		Rect rect(Point(x1, y1), Point(x2, y2));

		//GrabCut的mask,这里不起作用,因为grabcut参数设置为GC_INIT_WITH_RECT
		mask.create(im.size(), CV_8UC1);
		mask.setTo(GC_BGD);
		(mask(rect)).setTo(Scalar(GC_PR_FGD));

		//用GC_INIT_WITH_RECT时候,Rect中间是GC_PR_FGD,矩形外面是GC_BGD
		grabCut(im, mask, rect, bgdmodel, fgdmodel, 1, GC_INIT_WITH_RECT);

		res.setTo(255, mask&1);
		imwrite(out_path+fid+"_result1.jpg", res);

		//注意到copyTo函数的自适应性,res本来是单通道的,copyTo之后变成了和im一样的3通道
		im.copyTo(res, mask&1);
		imwrite(out_path+fid+"_result2.jpg", res);

		imshow("res", res);
		//waitKey(0);
	}


	return 0;
}
Example #5
0
int main() { 
	/*IplImage *img = cvLoadImage("32.jpg");
	// 输出汉字
	CvxText text("C:\\Windows\\Fonts\\simsun.ttc"); // "zenhei.ttf"为黑体常规
	const char *msg = "航";
	float p = 1;
	text.setFont(NULL, NULL, NULL, &p);   // 透明处理
	text.putText(img, msg, cvPoint(3.5, 29), CV_RGB(0,0,0));
	// 定义窗口,并显示影象
	cvShowImage("test", img );
	//system("md .\\result1"); 
	cvSaveImage(".//result1//han.jpg", img);
	cvWaitKey(-1);
	cvReleaseImage(&img);*/
	/*Directory dir;  
	string exten = "*";//"Image*";//"*"  
	string save_path="D://文字识别//train//";
	string save_dir="md D:\\文字识别\\train\\";
	bool addPath = false;//false  
	string dir_path = "E://编程练习//20150515//20150515//ziti";    
	vector<string> foldernames = dir.GetListFiles(dir_path,exten, addPath); 
	for (int i = 0; i < foldernames.size(); i++)  
	cout<<foldernames[i]<<endl;*/
	Directory dir;  
	string exten = "*";//"Image*";//"*"  
	string save_path="D://文字识别//train64//";
	string save_dir="md D:\\文字识别\\train64\\";
	bool addPath = false;//false  
	string dir_path = "D://文字识别//train_3755";    
	vector<string> foldernames = dir.GetListFolders(dir_path,exten, addPath);  
	for (int i = 0; i < foldernames.size(); i++)  
		foldernames[i]=foldernames[i].substr(0, foldernames[i].find_first_of("."));
	IplImage *img = cvLoadImage("64.jpg");
	IplImage* img2;
	
	string ziti_path = "E://编程练习//20150515//20150515//ziti";    
	vector<string> ziti_names = dir.GetListFiles(ziti_path,exten, addPath);
	string ziti_root="C:\\Windows\\Fonts\\";
	stringstream ss;
	for(int j=1;j<ziti_names.size();j++){
		//if(j==14) continue;
		string ziti=ziti_root+ziti_names[j];
		cout<<j<<" "<<ziti_names[j]<<" 字体打印中"<<endl;
		CvxText text(ziti.c_str()); 
		for (int i = 0; i < foldernames.size(); i++)  {
			img2 = cvCreateImage(cvGetSize(img),img->depth,img->nChannels);
			//将图片1复制到图片2
			cvCopy(img,img2,NULL);
			const char *msg = foldernames[i].c_str();
			//string cmd=save_dir+foldernames[i];
			//system(cmd.c_str()); 
			float p = 1.0;
			text.setFont(NULL, NULL, NULL, &p);   // 透明处理
			text.putText(img2, msg, cvPoint(7, 58), CV_RGB(0,0,0));
			
			ss<<j;
			string path=save_path+foldernames[i]+"//"+ss.str()+"_"+foldernames[i]+".jpg";
			ss.str("");
			cvSaveImage(path.c_str(), img2);
		}
	}
	//cout<<foldernames[i]<<endl; 
	cvWaitKey(-1);
	cvReleaseImage(&img);
	cvReleaseImage(&img2);
	return 0;

}