当前位置: 首页 > news >正文

OpenCV-Python常用函数汇总

OpenCV Python

  • OpenCV简述
  • 显示窗口
    • waitKey():等待按键输入
    • namedWindow():创建窗口
    • destroyWindow() :注销指定窗口
    • destroyAllWindows() 注销全部窗口
    • resizeWindow() 调整窗口尺寸
  • 图像操作
    • imread():读取图像
    • imwrite():保存图像
    • imshow():显示图片
  • 视频操作
    • VideoCapture():视频捕获
    • VideoWriter():视频写入
    • VideoWriter_fourcc():视频格式
  • 图形绘图
  • 事件处理

OpenCV简述

显示窗口

waitKey():等待按键输入

waitKey(delay=…)

  • 功能:等待键盘按键输入。
  • delay:等待时间,单位毫秒。0或不填写阻塞等待。
  • 返回:键盘按下的键值。
  • 注意:64位系统需要增加&0xFF,cv2.waitKey(0)&0xFF

namedWindow():创建窗口

namedWindow(winname, flags: int = …)

  • 功能:创建窗口
  • winname:窗口名称
  • flags:
    cv2.WINDOW_AUTOSIZE:默认设置
    cv2.WINDOW_NORMAL:可以调整窗口大小
    cv2.WINDOW_FULLSCREEN:全屏
    cv2.WINDOW_KEEPRATIO:保持纵横比例

destroyWindow() :注销指定窗口

destroyWindow(winname)

  • 功能:注销指定窗口。
  • winname:要注销的窗口名称。

destroyAllWindows() 注销全部窗口

destroyAllWindows()

  • 功能:注销全部窗口

resizeWindow() 调整窗口尺寸

resizeWindow(winname, width, height)

  • 功能:调整窗口大小
  • winname:窗口名称
  • width:调整窗口目标宽度
  • height:调整窗口目标高度
# 示例代码
cv2.namedWindow('image',cv2.WINDOW_NORMAL)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

图像操作

imread():读取图像

imread(filename: str, flags: int = …)

  • 功能:读取图像数据
  • filename:图像文件名称(包含路径)
  • flags:
    cv.IMREADCOLOR:以彩色模式加载图像,任何图像的透明度都将被忽略。这是默认参数。
    cv.IMREAD
    GRAYSCALE:以灰度模式加载图像
    cv.IMREAD_UNCHANGED:包括alpha通道的加载图像模式
    以上参数可以直接用(1,0,-1)替换
    # 读取图像img1 = cv2.imread('./opencv/images/1.jpg', cv2.IMREAD_COLOR)        # 彩色img2 = cv2.imread('./opencv/images/1.jpg', cv2.IMREAD_GRAYSCALE)    # 灰度

imwrite():保存图像

imwrite(filename: str, img: Mat, params: typing.List[int] = …)

  • 功能:保存图像到指定路径
  • filename:保存图像的路径
  • img:要保存的图像数据
# 写入文件
cv2.imwrite('./opencv/images/1-out.jpg', img1)
cv2.imwrite('./opencv/images/2-out.jpg', img2)

imshow():显示图片

imshow(winname, mat)

  • 功能:显示图片
  • winname:窗口名称
  • mat:图片数据
cv2.imshow('img', img)

matplotlib显示彩色图片

import numpy as np
import cv2
from matplotlib import pyplot as pltif __name__ == "__main__":img = cv2.imread('./opencv/images/1.jpg', cv2.IMREAD_COLOR)img2 = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) # BGR转RGBplt.imshow(img2)plt.xticks([]), plt.yticks([]) # 隐藏X,Y轴数值显示plt.show()

matplotlib显示灰度图片

import numpy as np
import cv2
from matplotlib import pyplot as pltif __name__ == "__main__":img = cv2.imread('./resource/image/1.jpg', cv2.IMREAD_GRAYSCALE)plt.imshow(img, cmap='gray', interpolation='bicubic')plt.xticks([]),plt.yticks([]) # to hide tick values on X and Y axisplt.show()

视频操作

VideoCapture():视频捕获

  • 视频捕获:VideoCapture()

VideoWriter():视频写入

  • 视频写入:VideoWriter()

VideoWriter_fourcc():视频格式

VideoWriter_fourcc(c1, c2, c3, c4)

图形绘图

  • 画线:line()
  • 矩形:rectangle()
  • 画圆:circle()
  • 椭圆:ellipse()
  • 多边形:polylines()
  • 添加文字:putText()

line(img: Mat, pt1, pt2, color, thickness=…, lineType=…, shift=…)

rectangle(img: Mat, pt1, pt2, color, thickness=…, lineType=…, shift=…)

circle(img: Mat, center, radius, color, thickness=…, lineType=…, shift=…)

ellipse(img: Mat, center, axes, angle, startAngle, endAngle, color, thickness=…, lineType=…, shift=…)

polylines(img: Mat, pts, isClosed, color, thickness=…, lineType=…, shift=…)

putText(img: Mat, text, org, fontFace, fontScale, color, thickness=…, lineType=…, bottomLeftOrigin=…)

事件处理

  • setMouseCallback()
http://www.lryc.cn/news/101659.html

相关文章:

  • Vue-router多级路由
  • 前端学习--vue2--2--vue指令基础
  • 【Python机器学习】实验03 logstic回归
  • 面试-杨辉三角python递归实现,二进制转换
  • SPEC CPU 2017 x86_64 Ubuntu 22.04 LTS LLVM 16.0.6 编译 intrate intspeed
  • java备忘录模式
  • iOS--runtime
  • 06. 管理Docker容器数据
  • 计算机视觉常用数据集介绍
  • Arcgis画等高线
  • abp vnext4.3版本托管到iis同时支持http和https协议
  • 2023年全网电视盒子无线ADB修改桌面(无需ROOT)
  • 什么是Java中的Maven?
  • 【C++】总结7
  • 【前端知识】React 基础巩固(四十二)——React Hooks的介绍
  • adb命令丨adb push命令大全_adb操控手机和指令
  • 【腾讯云 Cloud Studio 实战训练营】沉浸式体验编写一个博客系统
  • 手机视频聊天分享
  • 神经网络小记-优化器
  • 200+行代码写一个简易的Qt界面贪吃蛇
  • redis中使用bloomfilter的白名单功能解决缓存穿透问题
  • Spring Boot 2.7.8以后mysql-connector-java与mysql-connector-j
  • 03|「如何写好一个 Prompt」
  • 关于提示词 Prompt
  • 【Linux多线程】线程的互斥与同步(附抢票案例代码+讲解)
  • ajax概述
  • 小白带你学习linux的mysql服务(主从mysql服务和读写分离三十一)
  • 【低代码专题方案】iPaaS运维方案,助力企业集成平台智能化高效运维
  • Android SDK 上手指南||第一章 环境需求||第二章 IDE:Eclipse速览
  • Amazon Linux上使用ec2-user来设置开机自启动的shell脚本