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

opencv-python(图像基础)

一.什么是opencv?

OpenCV(开放源代码计算机视觉库)是一个开源的计算机视觉和机器学习软件库。由一系列 C++ 类和函数构成,用于图像处理、计算机视觉领域的算法实现。

二.环境安装

在conda环境下输入以下命令即可

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-python

三.图像表示

        像素是图像的基本单元,每个像素存储着图像的颜色、亮度和其他特征。一系列像素组合到一起就形成了完整的图像,在计算机中,图像以像素的形式存在并采用二进制格式进行存储。根据图像的颜色不同,每个像素可以用不同的二进制数表示

        计算机采用0/1编码的系统,数字图像也是利用0/1来记录信息,我们平常接触的图像都是8位数图像。opencv中常用的是8位图像,大多数彩色和灰度图像使用8位表示每个通道的像素值,范围从0到255,其中0,代表最黑,1,表示最白

四.图像存储

在OpenCV中,无论是读取还是创建图像,结果都是一个NumPy数组。

  • 彩色图像:三维数组  RGB图像的数据类型(unit)88位无符号整形  RGB颜色分量(三通道)

  • 灰度图像:二维 (单通道)

img.shape 可以获取图像信息

五.基本图像操作

函数语法说明
创建窗体cv2.namedWindow(winname [,窗口属性])'winname`:窗口名
窗口属性:
 cv2.WINDOW_AUTOSIZE:默认,自适应窗口大小
 cv2.WINDOW_NORMAL:用户可以通过鼠标拖动窗口边缘来自由改变窗口大小
读取图像cv2.imread(path [,读取方式])

注意:./ 表示当前目录

           ../ 表示当前目录的上一级目录(即父目录)

显示图像cv2.imshow(winname,img)
  • winname:显示图像的窗口名,以字符串类型表示

  • img:要显示的图像

保存图像cv2.imwrite(path,img)
  • path:图片保存的路径和图片名

图像切片img[y:y+h,x:x+w]提取的是从(x,y)开始,高度为h,宽度为w的矩形区域
图像大小调整cv2.resize(img,dsize,dts)
  • dsize:输出图像的尺寸,是一个二元组(w,h)
  • dst:缩放后的图像
 “等待按键” 函数cv2.waitKey(n)函数的作用是让程序暂停执行直到按下下一个键 n的单位为毫秒
销毁窗口cv2.destroyAllWindows([winname])会在当前程序执行到该语句时立即销毁打开的窗口,并释放与这些窗口相关的资源

 

 

 

 

 

 

 

 

 

六.图像绘制

函数语法说明
绘制直线

cv2.line(img,sart,end,color,thickness)

thickness:线条宽度

绘制圆形

cv2.circle(img,centerpoint,r,color,thickness)

centerpoint、r:圆心和半径

绘制矩形

cv2.rectangle(img,leftupper,rightdown,color,thickness)

leftupper  rightdown:矩形的左上角和右下角坐标 ​​​​​​​

绘制文本cv2.putText()需要可自查

 

 

七.读取视频

  • cap = cv2.VideoCapture(path)

    path:视频流资源路径设置为0,代表从默认摄像头捕获视频流
  • ret,frame = cap.read()

  • 返回值cap调用read()方法得到一个布尔值和一帧图像,ret布尔值表示是否成功读取到帧,如果为False,可能是因为视频结束或读取失败,如果为True,frame则是当前帧的图像数据

相关文章:

  • 解析医疗器械三大文档:DHF、DMR与DHR
  • 蓝桥杯之门牌
  • SQL问题分析与诊断(8)——分析方法1
  • Sentinel核心算法解析の漏桶算法
  • Docker的镜像构建
  • Stable Diffusion +双Contronet:从 ControlNet 边缘图到双条件融合:实现服装图像生成的技术演进——项目学习记录
  • Profibus DP主站转ModbusTCP网关通讯秘籍
  • Windows 10 操作系统电源选项没有高性能模式怎么办?
  • 【c语言】指针习题
  • 征程 6 VIO Frame 时间戳介绍
  • 【随手笔记】QT避坑一(串口readyRead信号不产生)
  • 测试第二课-------测试分类
  • 安宝特案例 | 某户外机房制造企业应用AR+作业流,规范制造过程,记录施工节点,保障交付质量
  • AI Agent工程师认证-学习笔记(3)——【多Agent】MetaGPT
  • 2025蓝桥杯省赛C++B组解题思路
  • 月之暗面视觉模型(Kimi-VL)论文速读
  • OBS SDK 中 ffmpeg_muxer 与 ffmpeg_output 的区别与使用 QSV 编码器的正确方式
  • 《前端面试题之 CSS篇(第一集)》
  • 一周学会Pandas2 Python数据处理与分析-Pandas2数据导出
  • data_analysis13
  • 网站服务器去哪买的/开封搜索引擎优化
  • 网站建设微信运营公司/百度竞价推广流程
  • 咨询行业网站开发/下载百度推广app
  • 彭阳门户网站建设/自己的网站
  • 佛山企业门户网站建设/seo推广编辑
  • 安徽网站建设天锐科技/百度权重怎么查询