0、采坑系列
1、每个包根目录有_init_.py文件来区分包和普通文件夹区别。(python from 导入包错误)
2、有_init_.py文件还是无法导入,发现是包名是多个单词组成,单词间隔用了 - ,应该用 _ 代替。
3、pycharm引入包要指定源码文件夹,不然无法引入。
1、cv2使用
cv2.imshow(wname,img) # wname为字符串
cv2.waitKey(0)
cv2.destroyAllWindows()
cv2.destroyWindow(wname)
cv2.imwrite('./images/' + image.split("/")[-1], img)
- 使用函数cv2.imshow(wname,img)显示图像,第一个参数是显示图像的窗口的名字,第二个参数是要显示的图像(imread读入的图像),窗口大小自动调整为图片大小
- cv2.waitKey顾名思义等待键盘输入,单位为毫秒,即等待指定的毫秒数看是否有键盘输入,若在等待时间内按下任意键则返回按键的ASCII码,程序继续运行。若没有按下任何键,超时后返回-1。参数为0表示无限等待。不调用waitKey的话,窗口会一闪而逝,看不到显示的图片
- cv2.destroyAllWindow()销毁所有窗口
- cv2.destroyWindow(wname)销毁指定窗口wname
- 将修改后的图片保存到指定目录,文件名称还是原来的名称。
2、time使用
import time
time1 = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
print(time1)
time2 = time.strftime("%Y-%m-%d", time.localtime())
print(time2)
结果:
3、base64转图片
import os,base64
str = "<base64字符串>"
imgdata = base64.b64decode(str)
file = open('1.jpg','wb')
file.write(imgdata)
file.close()
注意事项:
若base64字符串头有该字段,请删除(含逗号)
4、base64编解码,转成Opencv格式
import base64
import numpy as np
import cv2
str="<base64字符串>"
img_b64decode = base64.b64decode(str) # base64解码
img_array = np.fromstring(img_b64decode,np.uint8) # 转换np序列
img=cv2.imdecode(img_array,cv2.COLOR_BGR2RGB) # 转换Opencv格式
cv2.imshow("img",img)
cv2.waitKey()
注意事项同3
5、numpy生成矩阵(1,2,3,4,5...)
import numpy as np
m = np.arange(0, 100, 1) # 生成0 ~ 100的数组,增长步长为1
m = m.reshape(10, 10) # 将矩阵转为10 X 10 的矩阵
print(m)
[[ 0 1 2 3 4 5 6 7 8 9]
[10 11 12 13 14 15 16 17 18 19]
[20 21 22 23 24 25 26 27 28 29]
[30 31 32 33 34 35 36 37 38 39]
[40 41 42 43 44 45 46 47 48 49]
[50 51 52 53 54 55 56 57 58 59]
[60 61 62 63 64 65 66 67 68 69]
[70 71 72 73 74 75 76 77 78 79]
[80 81 82 83 84 85 86 87 88 89]
[90 91 92 93 94 95 96 97 98 99]]
print(m[1:9, 2:8]) # 切片
[[12 13 14 15 16 17]
[22 23 24 25 26 27]
[32 33 34 35 36 37]
[42 43 44 45 46 47]
[52 53 54 55 56 57]
[62 63 64 65 66 67]
[72 73 74 75 76 77]
[82 83 84 85 86 87]]
6、csv文件读取,写入
# 读取
with open(csv_file_path, 'r') as csv_file:
csv_red = csv.reader(csv_file)
rows = [row for row in csv_red]
for emotion, pixels, usage in rows: # emotion等为csv文件中的字段
print(emotion)
print(pixels)
print(usage)
# 写入
with open(folder_path,"a+") as csvfile: # a+ 代表追加,w代表写入,直接覆盖
writer = csv.writer(csvfile)
# 先写入columns_name
writer.writerow(['emotion', 'pixels', 'Usage'])
# 写入多行
writer.writerows(csvs) # csvs是构造好的列表直接列表的形式,类似[[1, 2, 3],[4, 5, 6].[7, 8, 9]]