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()

效果图

相关推荐
LuckyLay1 分钟前
Vue百日学习计划Day16-18天详细计划-Gemini版
前端·vue.js·学习
hnlucky14 分钟前
Windows 上安装下载并配置 Apache Maven
java·hadoop·windows·学习·maven·apache
霸王蟹25 分钟前
React Fiber 架构深度解析:时间切片与性能优化的核心引擎
前端·笔记·react.js·性能优化·架构·前端框架
~巴哥~31 分钟前
mcp学习笔记
笔记·学习
森哥的歌1 小时前
Python uv包管理器使用指南:从入门到精通
python·开发工具·uv·虚拟环境·包管理
qq_214782611 小时前
给你的matplotlib images添加scale Bar
python·数据分析·matplotlib
Johny_Zhao1 小时前
Vmware workstation安装部署微软SCCM服务系统
网络·人工智能·python·sql·网络安全·信息安全·微软·云计算·shell·系统运维·sccm
waterHBO1 小时前
python + flask 做一个图床
python
动感光博1 小时前
Unity(URP渲染管线)的后处理、动画制作、虚拟相机(Virtual Camera)
开发语言·人工智能·计算机视觉·unity·c#·游戏引擎
lichuangcsdn2 小时前
【springcloud学习(dalston.sr1)】Eureka 客户端服务注册(含源代码)(四)
学习·spring cloud·eureka