图片重命名

来源:互联网 发布:远洋数据推销什么 编辑:程序博客网 时间:2024/05/21 07:09

图片重命名,将图片按标签顺序(名字不能有空格)读进新的文件夹。



#include<opencv2/opencv.hpp>#include <iostream>#include <vector>#include <fstream>#include <string>using namespace cv;using namespace std;string addpath = "C:\\Users\\Administrator.MICROSO-QVV5KHN\\Desktop\\新建文件夹\\samples\\";ifstream infile(addpath + "dir.txt");int number = 1;char imgdir[100];string imgdirname;int main(){while (1) {string path;infile >> path;if (path.empty())break;string imgpath = addpath + path;Mat img = imread(imgpath);if (img.empty())break;sprintf(imgdir, "%s%s%05d%s", "D:\\openpose\\rename\\rename\\samples\\", "", number++, ".jpg");imgdirname = imgdir;imwrite(imgdirname, img);}return 0;}


 生成标签,手写或者  dir/b >dir.txt    保存为dir.bat


或者matlab,必须按循序,图片名不要含中文

close all; clear; clc;  %maindir='D:\openpose\windows\ggg\picture\';    %maindir='D:\openpose\windows\ggg\picture\';    %maindir='D:\dd\train\renameimg\'; %maindir='D:\dd\train\renameimg\test\'; maindir='C:\Users\Administrator.MICROSO-QVV5KHN\Desktop\新建文件夹\';  name_long=6; %图片名字的长度,如000123.jpg为6,最多9位,可修改      num_begin=1; %图像命名开始的数字如0123.jpg开始的话就是123            subdir = dir(maindir);  %dir:列出指定目录下所有子文件夹和文件,不包含下级目录    n=1;            for i = 1:length(subdir)        if ~strcmp(subdir(i).name ,'.') && ~strcmp(subdir(i).name,'..')  %strcmp:比较字符串str1与str2,若完全相等则返回1,不相等返回0         subsubdir = dir(strcat(maindir,subdir(i).name));  %strcat:将字符串str1与str2连接,dir        for j=1:length(subsubdir)               if ~strcmp(subsubdir(j).name ,'.') && ~strcmp(subsubdir(j).name,'..')                  img=imread([maindir,subdir(i).name,'\',subsubdir(j).name]);  %读取图片               % imshow(img);                  str=num2str(num_begin,'%09d');  %将数值转化为字符串                newname=strcat(str,'.jpg');                newname=newname(end-(name_long+3):end);  %取newname从第end-(name_long+3)个,到最后一个                system(['rename ' [maindir,subdir(i).name,'\',subsubdir(j).name] ' ' newname]); %system('rename  filename newfilename'); 这是调用格式                num_begin=num_begin+1;                  fprintf('当前处理文件夹%s',subdir(i).name);                  fprintf('已经处理%d张图片\n',n);                  n=n+1;                 % pause(0.1);%可以将暂停去掉               end          end        end      end   


原创粉丝点击