使用python对文件下的文件批量重命名

一直以来进行相机标定的时候需要对采集的图像进行重命名,一直像个智障一样一个一个对图像进行操作,效率极低。突然就明白了那句话,“人生苦短,我用python”

import os
path = "E:\\image"
filelist = os.listdir(path) #该文件夹下所有的文件(包括文件夹)
count=0
for file in filelist:
    print(file)
for file in filelist:   #遍历所有文件
    Olddir=os.path.join(path,file)   #原来的文件路径
    if os.path.isdir(Olddir):   #如果是文件夹则跳过
        continue
    filename=os.path.splitext(file)[0]   #文件名
    filetype=os.path.splitext(file)[1]   #文件扩展名
    Newdir=os.path.join(path,str(count).zfill(6)+filetype)  #用字符串函数zfill 以0补全所需位数
    os.rename(Olddir,Newdir)#重命名
    count+=1

增加一个c++版本的,功能是读取一个文件夹内规则命名的图像文件,对其灰度化,然后重命名存到另外一个文件夹。

#include 
#include 
#include 
#include 
#include 

using namespace std;
using namespace cv;

int main()
{
	Mat img = imread("00000.bmp",0);
	
	
	char filename2[50];
	for (int k = 0; k < 800; k++)
	{
		stringstream ss;
		ss << setfill('0') << setw(5) << k;
		string filePath = "D:\\SLAM研究\\AVM\\data\\2020-7-8\\1\\test3\\"+ss.str()+".bmp";
		//imread(filePath,)
		//cout << filePath << endl;
		Mat img = imread(filePath, 0);
		if (!img.data)
		{
			cout << "读取完毕" << endl;
			return 0;
		}
		sprintf(filename2, "D:\\SLAM研究\\AVM\\data\\2020-7-8\\1\\gray3\\img%d.png",k);
		cout << filename2 << endl;

		imwrite(filename2, img);
	}

	return 0;
}

实在不想再水一篇博客了,在这里加一个,使用python画三维点的小程序。

**# 实例:
# 首先,还是需要取坐标
import numpy as np   # 假设,m是给定的三维散点序列,每行就是每一个三维点坐标,x,y,z
m = np.array([[-0.068, -0.064, -0.109],
             [0.0378, -0.0788, -0.1120],
             [0.0015, -0.1036, -0.2014],
			 [0,0,0]])
x = [x[0] for x in m]
y = [x[1] for x in m]
z = [x[2] for x in m]
print(x)
print(y)
print(z)

# 然后正常画图
import matplotlib.pyplot as plt
import mpl_toolkits.mplot3d

ax = plt.subplot(projection = '3d')  # 创建一个三维的绘图工程
ax.set_title('3d_image_show')  # 设置本图名称
ax.scatter(x, y, z, c = 'r')   # 绘制数据点 c: 'r'红色,'y'黄色,等颜色

ax.set_xlabel('X')  # 设置x坐标轴
ax.set_ylabel('Y')  # 设置y坐标轴
ax.set_zlabel('Z')  # 设置z坐标轴

plt.show()**

你可能感兴趣的:(python)