笔记:Python

永久修改清华镜像源

pip下载的包缓存的目录
Windows:C:\Users\admin\AppData\Local\pip\
Ubuntu:~/.cache/pip/

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

基础

字典

# 字典转化为列表
list(dic.values())
list(dic.keys())
# 返回字典中key为a的value,若a不存在则返回b
dic.get(a, b) 

列表

# 当index=0时,首位插入;index=-1时,尾位前插入,即在倒数第二位。
a.insert(index, value)
# 在数组末尾增加一项
a.append(value)
# 移除列表的某一项, index默认为-1,即最后一项
a.pop(index)
# 列表转化为字符串
','.join(a)
# 列表内数据类型转换
list(map(int, a))
list(map(str, a))

字符串与数值
①字符串不能通过索引修改,如a = “1234”,a[0] = '0’这样的赋值是错的。
②负数的整除操作应-1,如-1 // 10 = -1,-15 // 10 = -2。

# 将字符串转化为10进制整型,base为字符串的进制形式
int(a, base)
# 对字符串前补0,补完后总长度为n
a = a.zfill(n)

os

# 列表输出目录下所有文件名
os.listdir(path)

cv2

图片处理
图片的保存cv2.imwrite与图片的展示cv2.imshow可能不一致,有时候需要×255或÷255来改变像素值

# 读取一张图片
img = cv2.imread('./img_path.jpg')
# 读取彩色图像的灰度图
img = cv2.imread('./img_path.jpg', 0)
# 保存一张图片
cv2.imwrite('./output_path.jpg', img)
# 展示一张图片
cv2.imshow('img', img)
# 改变图像尺寸
cv2.resize(img, (w, h))
# 图像转置
img = cv2.transpose(img)
# 图像垂直翻转(img, 0)、水平翻转(img, 1),水平垂直翻转(img, -1)
img = cv2.flip(img, 0)
# 图像垂直拼接,水平拼接
img = cv2.vconcat([img1, img2])
img = cv2.hconcat([img1, img2])
# 图像转换为灰度图,RGB颜色空间通道转换
img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
# 画线段(图像,起始点,终止点,颜色,粗细)
cv2.line(img, (x1, y1), (x2, y2), color=(0, 0, 0), thickness=1)
# 画圆圈(图像,圆心坐标,半径,颜色,粗细)
# 当thickness=-1时为实心圆
cv2.circle(img, (x, y), r, color=(0, 0, 0), thickness=1)
# 画矩形框(图像,左上角坐标,右下角坐标,颜色,粗细)
# 当thickness=-1时为实心矩形
cv2.rectangle(img, (x1, y1), (x2, y2), color=(0, 0, 0), thickness=1)
# 增加文字(图像,文字内容,左下角坐标,字体,字号,颜色,粗细)
cv2.putText(img, 'str', (x, y), cv2.FONT_HERSHEY_SIMPLEX, 2, color=(0, 0, 0), thickness=1)
# 画椭圆(图像,椭圆中心坐标, (长轴,短轴),旋转角度,弧起始角度,弧终止角度,颜色,粗细)
# 当thickness=-1时为实心椭圆
cv2.ellipse(img, (x, y), (a, b), 30, 0, 180, color=(0, 0, 0), thickness=1)
# 画多边形,设置顶点
pts = np.array([[10, 3], [60, 3], [98, 19], [48, 19]])
# (图像,顶点,是否首尾相连,颜色,粗细)
cv2.polylines(img, [pts], True, color=(0, 0, 0), thickness=1)

视频制作

# 读入一段视频
v_cap = cv2.VideoCapture('./v_path.avi')
# 获取视频信息
fps = v_cap.get(cv2.CAP_PROP_FPS)
w = v_cap.get(cv2.CAP_PROP_FRAME_WIDTH)
h = v_cap.get(cv2.CAP_PROP_FRAME_HEIGHT)
frame_count = v_cap.get(cv2.CAP_PROP_FRAME_COUNT)
fourcc = v_cap.get(cv2.CAP_PROP_FOURCC)
# 检查读取视频是否被打开
v_cap.isOpened()
# 按帧读取一帧,ret为True,当视频读完后ret变为False
ret, img = v_cap.read()
# 制作一段视频,参数需要是整数
v_out = cv2.VideoWriter('./output_path.avi', cv2.VideoWriter_fourcc(*'MJPG'), fps, (w, h))
# 检查制作视频是否被打开
v_out.isOpened()
# 保存一帧
v_out.write(img)
#读取完,制作完记得release视频,关闭窗口
v_cap.release()
v_out.release()
cv2.destroyAllWindows()

窗口设置

# 设置展示窗口可变形,要写在cv2.imshow前面
cv2.namedWindow('img', cv2.WINDOW_NORMAL)
# 等待任意按键再关闭窗口,否则窗口一闪而过,0表示永久等待,其他数值表示刷新周期(ms)
cv2.waitKey(0)
# 一般写成这样,表示按下Q键结束
if cv2.waitKey(1) & 0xFF == ord('q'):
    break
# 关闭opencv所有窗口
cv2.destroyAllWindows()

numpy

# 增加数组
a = np.append(a, b)
# 组合数组
a = np.concatenate((a, b), axis=0)
# 创建一个全为0或1的数组
a = np.ones((3, 3, 3))
a = np.zeros((3, 3, 3))
# 增加一个新的维度
a = a[:, :, np.newaxis]
# 向量点乘
np.dot(a, b)
# 向量取范数(默认2范数)
np.linalg.norm(a)
# 向量(x, y)正切值,值域为[-π,π]
np.arctan2(y,x) * 180 / np.pi
# 取小数点后n位,可以对数组运算
np.round(a, n)
# 数据限幅,min和max是期望限幅的最大最小值
np.clip(a, min, max)
# 排序
np.sort(a)
np.argsort(a)
np.lexsort(a)
# 求最大最小值
np.max()
np.min()
np.argmax()
np.argmin()
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我才是真的李成贤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值