通过python写一些脚本实现数据处理功能确实很方便,先记录当下,后续补充完善
1.读取文件夹所有数据并进行随机采样
注:主要调用os库的文件操作功能,想要掌握程度就自己实现一个小功能就很快了解其基本原理了,代码书写时需要注意上下对齐与空格,不然会报错,再就是对于中文路径读出和写入时的编码小心,其他就是字符串的操作了,具体实现如下:
# -*- coding:UTF-8 -*-
import os
import random
dirname = "...folder"
txt_path='F:/code/Pycham/list.txt'
txt_file = open(txt_path,'w')
imglist=[]
def traverse_path(file_path):
files = os.listdir(file_path)
for fi in files:
fi_d = os.path.join(file_path, fi)
if os.path.isdir(fi_d):
traverse_path(fi_d)
else:
img_name=os.path.join(file_path, fi_d)
#print(img_name)
if img_name[-4:]=='tiff':
#print(img_name)
txt_file.write(img_name)
txt_file.write('\n')
# for i in len(lists):
# print(lists(i))
#print("读取图像数量:",len(imglist))
traverse_path(dirname)
#随机抽取样本数目
sample_file='F:\code\Pycham\sample.txt'
n=1000
f=open(txt_path,encoding='gbk')
lines=f.readlines()
list=[]
for line in lines:
print(line)
list.append(line)
print("样本总个数:",len(list)," 抽样个数:",n)
g=open(sample_file,'w')
a=random.sample(list,n)#随机抽取n行
for i in a:
g.write(i)
f.close()
g.close()
2.关于pycharm读入cv2报错的解决
关于opencv-python安装:
C++快速梯子https://www.raoyunsoft.com/wordpress/index.php/2020/03/09/opencvdownload/
python快速梯子https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/opencv-python/
将下载后.whl文件放到以下目录:

打开cmd窗口 ,键入:

安装完opencv_python,之后在python 3.x.x—Lib—site-packages里应该有很多opencv开头,然后dll结尾的文件。这个时候我们只需要一步操作就行了。
那就是将这些文档全部放在一个cv2的文件夹下面。 最后将这个cv2文件夹放在Lib目录下面。一定要注意是lib目录。如果放在site-packages还是会报错的。
总之概况为一句话,把安装到site-packages目录下cv2目录移动到Lib目录下就行!

这样Tracker的代码跑起来了,很开心,但是发现pycharm关于cv2没有代码提示,这不能忍啊!,最后在Lib\cv2这个目录,找到__init__.py,修改如下:
import sys
import os
import importlib
os.environ["PATH"] += os.pathsep + os.path.dirname(os.path.realpath(__file__))
from .cv2 import *
from .data import *
# wildcard import above does not import "private" variables like __version__
# this makes them available
globals().update(importlib.import_module('cv2.cv2').__dict__)
3.遍历文件及子文件目录获取图像路径
# -*- coding:UTF-8 -*-
import os
import random
dirname = "...folder"
txt_path='F:/code/Pycham/list.txt'
txt_file = open(txt_path,'w')
imglist=[]
def traverse_path(file_path):
files = os.listdir(file_path)
for fi in files:
fi_d = os.path.join(file_path, fi)
if os.path.isdir(fi_d):
traverse_path(fi_d)
else:
img_name=os.path.join(file_path, fi_d)
#print(img_name)
if img_name[-4:]=='tiff':
#print(img_name)
imglist.append(img_name)
txt_file.write(img_name)
txt_file.write('\n')
# for i in len(lists):
# print(lists(i))
traverse_path(dirname)
print("读取图像数量:",len(imglist))

这篇博客介绍了如何使用Python进行数据处理,包括读取文件夹中的所有数据并进行随机采样,以及解决PyCharm中cv2模块导入的问题。博主提供了详细代码示例,演示了遍历文件夹获取图像路径、创建样本列表以及处理Opencv安装后的代码提示缺失问题。此外,还分享了遍历文件目录获取图像路径的函数。
5万+

被折叠的 条评论
为什么被折叠?



