OpenCV笔记1:图像属性+打开图像+视频采集+绘制几何图形、文字

OpenCV

图像属性

  • 三通道:BGR
  • 图像shape:height、weight、channel

打开图像

  1. 创建窗口 namedWindow
  2. 设置窗口大小 resizeWindow
  3. 找到图像路径,打开 imread
  4. 显示 imshow
  5. 等待 waitKey
  6. 释放窗口 destroyAllWindows
python 复制代码
"""
1. 创建窗口
2. 设置窗口大小
3. 找到图像路径,打开
4. 显示
5. 等待
6. 释放窗口
"""
import cv2

# 创建窗口
# 参数1 窗口名字
# 参数2 模式
cv2.namedWindow('img', cv2.WINDOW_NORMAL)
# 设置窗口大小
cv2.resizeWindow('img', 800, 600)
# 打开/读取图像
img = cv2.imread('./snower.jpg')
# print(img.shape)
#  h    w    c
# (360, 360, 3)
# 显示图像
cv2.imshow('img', img)
# 等待
# 参数 > 0 则会等待ms
key = cv2.waitKey(1000)
# print(key)
# -1
# 释放窗口
cv2.destroyAllWindows()

效果图

视频采集

视频本质:由一帧一帧间隔时间很短的图像构成

  1. 接收摄像头 VideoCapture
    • 0:打开本地摄像头
    • 1-3:外接摄像头
  2. 读取一帧一帧的图像 isOpened
python 复制代码
"""
视频
本质:由一帧一帧间隔时间很短的图像构成
"""
import cv2

# 0 表示打开本地摄像头
# 1 2 3 外接摄像头
# 路径 播放视频
# 打开摄像头 视频采集
cap = cv2.VideoCapture(0)

while cap.isOpened():
    # 读取一帧一帧的图像
    retval, frame = cap.read()
    if not retval:
        print('can not read frame')
        break
    # imshow 会默认创建一个窗口
    cv2.imshow('frame', frame)
    key = cv2.waitKey(25)
    if key == ord('z'):
        break
cap.release()
cv2.destroyAllWindows()

效果图

绘制几何图形、文字

  • 线 line
  • 圆 circle
  • 矩形 rectangle
  • 多边形 polylines
  • 文字 putText
python 复制代码
"""
常见几何图形
点
线:起始点 + 终点
矩形:左上角的点 + 右下角的点
圆:圆心 + 半径
多边形
"""
import cv2
import numpy as np

bg_img = cv2.imread('./snower.jpg')
# 参数1 绘制的图
# 参数2 起始点
# 参数3 终点
# 参数4 颜色
# 参数5 线的大小
cv2.line(bg_img, (350, 50), (100, 100), color=(0, 0, 255), thickness=2)
# 矩形
cv2.rectangle(bg_img, (50, 50), (100, 100), color=(0, 255, 0), thickness=-1)
# 圆
cv2.circle(bg_img, (150, 150), 50, color=(255, 0, 255), thickness=2)
pts = np.array([(90, 150), (150, 200), (200, 300), (300, 80), (80, 30)])
# 多边形
cv2.polylines(bg_img, [pts], isClosed=False, color=(255, 255, 0), thickness=2)
# 绘制文字
# org 绘制文字的坐标
cv2.putText(bg_img,
            text='hello world',
            org=(20, 50),
            fontFace=cv2.FONT_ITALIC,
            fontScale=1.5,
            color=(0, 255, 255),
            thickness=2)
cv2.imshow('img', bg_img)
cv2.waitKey(0)
cv2.destroyAllWindows()

效果图

相关推荐
陈天伟教授3 小时前
人工智能训练师认证教程(2)Python os入门教程
前端·数据库·python
2301_764441333 小时前
Aella Science Dataset Explorer 部署教程笔记
笔记·python·全文检索
爱笑的眼睛113 小时前
GraphQL:从数据查询到应用架构的范式演进
java·人工智能·python·ai
BoBoZz193 小时前
ExtractSelection 选择和提取数据集中的特定点,以及如何反转该选择
python·vtk·图形渲染·图形处理
liwulin05063 小时前
【PYTHON-YOLOV8N】如何自定义数据集
开发语言·python·yolo
Bathwind-w3 小时前
FOC开发工具学习
学习
Coder_Boy_4 小时前
DDD从0到企业级:迭代式学习 (共17章)之 四
java·人工智能·驱动开发·学习
木头左4 小时前
LSTM量化交易策略中时间序列预测的关键输入参数分析与Python实现
人工智能·python·lstm
派大鑫wink4 小时前
【Java 学习日记】开篇:以日记为舟,渡 Java 进阶之海
java·笔记·程序人生·学习方法
deng-c-f4 小时前
Linux C/C++ 学习日记(49):线程池
c++·学习·线程池