概述
随机选取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("%dn", 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;
}
最后
以上就是不安果汁为你收集整理的复制图片至另外一个文件夹的全部内容,希望文章能够帮你解决复制图片至另外一个文件夹所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复