复制图片至另外一个文件夹

随机选取7500张图片到指定文件夹

#include <stdio.h>
#include <iostream>
#include <string>
#include <io.h>
#include <sstream>
#include <opencv2/opencv.hpp>
#include <atlbase.h>
using namespace cv;
using namespace std;

#define Random(x) (rand() % x) //通过取余取得指定范围的随机数


string int2str(int &i) {
  string s;
  stringstream ss(s);
  ss << i;

  return ss.str();
}
int main()
{
   
	string fileFolderPath = ".\\images";
	string fileExtension = "jpg";
	string fileFolder = fileFolderPath + "\\*." + fileExtension;
	int randNum[7500];
	int num=0;
    int dis=7500;               //产生[0, dis)之间的随机数,注意不包括dis
    for(int i=0; i<7500; i++)
    {    
          randNum[i]= Random(dis);
		  //printf("%d\n", Random(dis));
   }

	// 遍历文件夹
	char fileName[1000];
	char save_path[80]; 
	struct _finddata_t fileInfo;    // 文件信息结构体
	
	// 1. 第一次查找
	long findResult = _findfirst(fileFolder.c_str(), &fileInfo); 
	if (findResult == -1)
	{
		_findclose(findResult); 
		return 0;
	}
	
	// 2. 循环查找
	do 
	{
		num++;
		
		sprintf(fileName, "%s\\%s", fileFolderPath.c_str(), fileInfo.name);

		sprintf(save_path, "%s%d%s", ".\\savedimages\\image", randNum[num], ".jpg");//保存的图片名
		if ( fileInfo.attrib == _A_ARCH)  // 是存档类型文件
		{	
			
			string s;
			Mat frame;
			frame = imread(fileName);    // 读入图片
			IplImage* image=(&(IplImage)frame);

			if(fileInfo.name==int2str(randNum[num]))
				cvSaveImage( save_path, image);

		}

	} while (!_findnext(findResult, &fileInfo)||num<7500);  


	_findclose(findResult); 
    return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值