美文网首页
python之opencv

python之opencv

作者: 大脸猫猫脸大 | 来源:发表于2019-04-24 15:34 被阅读0次

介绍:强大的视觉处理工具库

一、 图片处理


图片读取&显示&存储

  1. cv2.imread(filename, flags=None) 读入图片,格式为ndarry
    flags:读入类型
    cv2.IMREAD_COLOR:默认参数,读入一副彩色图片,忽略alpha通道
    cv2.IMREAD_GRAYSCALE:读入灰度图片
    cv2.IMREAD_UNCHANGED:读入完整图片,包括alpha通道(png有,jpg无)
  2. cv2.imshow('wind_name', img)wind_name窗口中显示图片
  3. cv2.waitKey() 窗口等待任意键盘按键输入,0为一直等待,其他数字为毫秒数
  4. cv2.destroyAllWindows() 销毁窗口,退出程序
  5. cv2.imwrite(filename, img, params=None)img存入filename

添加图形&文本

参考:www.cnblogs.com/mfmdaoyou/p/6745132.html

  1. cv2.line(img,Point pt1,Point pt2,color,thickness=1,line_type=8 shift=0) 绘制直线
    pt1pt2为线的两端,颜色color,粗细thicknessshift=-1表示对图形进行填充
  2. cv2.rectangle(img, pt1, pt2, color, thickness=None, lineType=None, shift=None) 绘制矩形
    pt1pt2为左上角和右下角
  3. cv2. circle(img, center, radius, color, thickness=None, lineType=None, shift=None) 绘制圆
    圆中心center和半径radius
  4. cv2.ellipse(img, center, axes, angle, startAngle, endAngle, color, thickness=None, lineType=None, shift=None) 绘制椭圆
    椭圆示例图
  5. cv2.polylines(img, pts, isClosed, color, thickness=None, lineType=None, shift=None) 绘制多边形
    pts: 多边形各顶点坐标
    isClosed: 多边形是否闭合
  6. cv2.putText(img, text, org, fontFace, fontScale, color, thickness=None, lineType=None, bottomLeftOrigin=None)添加文本
    org:左上角坐标
    fontFace:字体, 可选cv2.FONT_HERSHEY_SIMPLEX
    fontScale, color, thickness:字体大小/颜色/粗细

图像变换

参考:
https://blog.csdn.net/qq_37541097/article/details/79999902

  1. cv2.cvtColor(src, code, dst=None, dstCn=None) 颜色空间转换
    code:转换类型,常用如 cv2.COLOR_BGR2RGB, cv2.COLOR_BGR2GRAY, cv2.COLOR_BGR2HSV
  2. _, mask = cv2.threshold(src, thresh, maxval, type, dst=None) 灰度图二值化
    src,thresh, maxval : 灰度图,阈值,最大值
    type:阈值类型,常见的类型有
    二值化类型
  3. 旋转图像
M = cv2.getRotationMatrix2D((width/2, height/2), angle, scale)
ratation = cv2.warpAffine(image, M, (width, height))

M为旋转矩阵,第一个参数是设定旋转中心,第二个参数是旋转角度(单位是度,逆时针为正),第三个参数是缩放比例
参考:https://blog.csdn.net/weixin_35732969/article/details/83779660

  1. cv2.resize(im, (width, height), interpolation)图像缩放
    (width, height), interpolation:缩放后图像大小, 插值类型
    插值类型 参考:https://blog.csdn.net/liangjiubujiu/article/details/80437481

二、 视频处理

参考:https://blog.csdn.net/qq_37541097/article/details/79999902

import cv2
import numpy as np

cap = cv2.VideoCapture('video.mp4')  # 打开视频文件
if cap.isOpened() is False:   # 确认视频是否成果打开
    print('Error')
    exit(1)
frame_width = int(cap.get(3))   # 获取图片帧宽度
frame_height = int(cap.get(4)) # 获取图像帧高度

#  创建保存视频,指定保存视频名称,指定视频编码器,视频帧率,图像帧尺寸
out = cv2.VideoWriter('output.avi', cv2.VideoWriter_fourcc('M', 'J', 'P', 'G'), 30, (frame_width, frame_height))
ret, frame = cap.read() # 读取一帧图像,当视频帧读取完毕ret标识符为False
while ret:
    cv2.imshow('frame', frame)  # 显示图像帧
    cv2.waitKey(20)   # 帧间隔为20ms
    frame = cv2.flip(frame, 0)  # 对图像进行水平翻转
    out.write(frame)  # 将frame写入视频
    ret, frame = cap.read()  # 读取下一帧

cap.release()
out.release()

相关文章

网友评论

      本文标题:python之opencv

      本文链接:https://www.haomeiwen.com/subject/hrowgqtx.html