1、numpy.random.permutation
随机排列一个序列,返回一个排列的序列。
>>> np.random.permutation(10)
array([1, 7, 4, 3, 0, 9, 2, 5, 8, 6])
>>> np.random.permutation([1, 4, 9, 12, 15])
array([15, 1, 9, 4, 12])
>>> arr = np.arange(9).reshape((3, 3))
>>> np.random.permutation(arr)
array([[6, 7, 8],
[0, 1, 2],
[3, 4, 5]])
2、卷积边界cvCopyMakeBorder()函数
cvCopyMakeBorder()函数可以复制图像并制作边界,将特定图像轻微变大,然后以各种方式自动填充图像边界,当Bordertype=IPL_BORDER_REPLICATE时,原始图像边缘的行和列被复制到大图像的边缘,当Bordertype=IPL_BORDER_CONSTANT时,有一个像素宽的黑色边界。
3、Python ord() 函数
ord() 函数是 chr() 函数(对于8位的ASCII字符串)或 unichr() 函数(对于Unicode对象)的配对函数,它以一个字符(长度为1的字符串)作为参数,返回对应的 ASCII 数值,或者 Unicode 数值,如果所给的 Unicode 字符超出了你的 Python 定义范围,则会引发一个 TypeError 的异常。
以下展示了使用 ord() 方法的实例:
>>>ord('a') 97
>>> ord('b') 98
>>> ord('c') 99
4、numpy.concatenate((a1, a2, ...), axis=0)
https://www.cnblogs.com/ymjyqsx/p/6472507.html
5、三维数据???
6、np.transpose
https://blog.youkuaiyun.com/xiongchengluo1129/article/details/79017142
7、key = '%07d' % writeCount
补零操作,对writeConut变量进行位的扩充 如writeCount=0,那么key=0000000
https://www.cnblogs.com/koliverpool/p/6623335.html参考文章
8、caffe.io.array_to_datum(img4ch,label=0)#convert numpy ndarray to caffe datum format将数据转换成caffe识别的datum数据
9、将数据写入lmdb格式
首先env=lmdb.open(lmdb_path,map_size=int(le12)),设置存储lmdb的路径和存储空间的大小, map_size定义最大储存容量,单位是kb
其次,txn = env.begin(write=True),# 参数write设置为True才可以写入
接着,txn.put(key, datum.SerializeToString())# 添加数据和键值
最后,txn.commit() env.close() 通过commit()函数提交更改
10、cv.imread(path,num)
import cv2
img = cv2.imread('image.jpg')
print(img)
cv2.imread在不加第二个参数的情况下默认将图片转换成了一个三维数组,最里面的一维代表的是一个像素的三个通道的灰度值,第二个维度代表的是第一行所有像素的灰度值,第三个维度,也就是最外面的一个维度代表的是这一张图片。
imread函数有两个参数,第一个参数是图片路径,第二个参数表示读取图片的形式,有三种:
cv2.IMREAD_COLOR:加载彩色图片,这个是默认参数,可以直接写1。
cv2.IMREAD_GRAYSCALE:以灰度模式加载图片,可以直接写0。
cv2.IMREAD_UNCHANGED:包括alpha,可以直接写-1。
本部分参考链接https://blog.youkuaiyun.com/qq_36336522/article/details/86915577