使用opencv进行图片分析

opencv学习

一、配置环境并打开编译器

  1. 配置opencv
  2. 在你的任意一个盘里创建一个专属于opencv的文件夹便于学习与整理
    在这里插入图片描述
  3. 打开控制台win+r输入cmd,进入后输入conda activate opencv,进入环境以后进入你所设置的opencv文件的盘,我的是D盘,所以输入d:,再输入cd "opencv",然后输入jupyter lab启动编译器
    在这里插入图片描述(OS:如果需要提交作业的big智慧聪明绝顶学生需要在你的opencv环境之前安装matplotlib库,所以pip install matplotlib https://pypi.tuna.tsinghua.edu.cn/simple

二、下载一个lena图片和MP4视频放入文件列表

如图所示,下载一个图片和视频后直接拖入文件列表
在这里插入图片描述

三、创建python file和使用终端进行运行

红色为代码编译的地方
黄色为终端运行
在这里插入图片描述

四、代码

#读取图像
import cv2
img=cv2.imread('1.jpg') #读取图像
print(type(img))        #输出数据类型
print(img)              #输出图像数组
print(img.shape)        #输出数组形状
print(img.dtype)        #输出数组元素的数据类型
print(img.size)         #输出数组元素的个数
#显示图像
import cv2
img=cv2.imread('1.jpg',cv2.IMREAD_REDUCED_COLOR_2) #读取图像并裁剪尺寸减小1/2
cv2.imshow('1',img)                                #显示图像
#等待按键
import cv2
img=cv2.imread('1.jpg',cv2.IMREAD_REDUCED_COLOR_2)
cv2.imshow('1',img)      #显示图像
key=0
while key!=27:           #按esc终止循环key=cv2.waitKey()    #等待按键
cv2.destroyWindow('1')   #关闭图像窗口
#播放视频
import cv2
vc=cv2.VideoCapture('2.mp4')                #创建VideoCapture对象
fps=vc.get(cv2.CAP_PROP_FPS)                #读取视频帧速率
size=(vc.get(cv2.CAP_PROP_FRAME_HEIGHT),vc.get(cv2.CAP_PROP_FRAME_WIDTH))     #读取视频大小
print('帧速率: ',fps)
print('大小: ',size)
success,frame=vc.read()                     #读第1帧
while success:                              #循环读视频帧到视频结束cv2.imshow('2',frame)                   #在窗口显示帧图像succes,frame=vc.read()                  #读下一帧率key=cv2.waitKey(25)                     #延迟时间if key==27:break
vc.release()

五、运行

终端输入python .\2-1.py,这里的2-1为py文件名
在这里插入图片描述上述四个代码均不报错即成功。

如有错误请广大读者酌情提议,在下会及时学习并改正

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/746817.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php.exe运行时,提示缺少VCRUNTIME140.dll

php.exe运行时,提示缺少VCRUNTIME140.dll 下载地址 https://www.microsoft.com/zh-cn/download/details.aspx?id48145根据需要选择下载3.运行安装后,再次运行php.exe。

javaweb篇请求与相应的参数问题

目录 目录 前言 简单传参设置 get请求无法识别 post请求 简单传参问题无法识别的解决问题 注意事项 改法 实体参数 代码展示(1)------单个私有类 代码展示(2)----多个私有类 实现服务器的部署以及实参的传递 今日分享…

B3620 x 进制转 10 进制(详解)

题目 思路 八进制数567怎么转化为十进制数。首先八进制就是逢八进一,也就是说这里面最大的数也就7,没有≥8的数。下面我们就讲一下567怎么转化为十进制:首先7是个位,可以直接写成十进制的7,6是十位,它是通…

图片制作二维码能批量生成吗?快捷在线制作二维码的技巧

现在很多场景下获取内容的方式都会通过扫描二维码来获取,比如常见的有文本内容、图片照片、音频视频等。二维码制作的方法也越来越简单,只需要通过二维码生成器的功能就可以快速完成,那么如果需要将多张图片每一张单独生成二维码使用时&#…

虚幻引擎5比Maya更好用吗?来看看Maya大神眼中的虚幻引擎5

这两年,大家总在争论: 虚幻引擎5(UE5)比Maya更好用吗? 未来会替代Maya吗? 虚幻引擎5(UE5)的快速发展,让许多传统Maya动画师感到焦虑和迷茫。但不要担心,这篇文章旨在解决你的困扰。…

Springboot——JSR303校验

1. 请求参数的合法性校验 使用基于JSR303的校验框架实现,Springboot提供了JSR-303的支持,它就是spring-boot-starter-validation,他包括了很多的校验规则,只需要在模型中通过注解指定校验规则,在Controller方法上开启校…

激活函数理解

前言 为什么神经网中非要有各种各样的激活函数?他们有什么用?没有他们会怎样?常见的激活函数有哪些,他们都有什么特点? 如果我们不运用激活函数,神经网络的输出信号将仅仅是一个简单的线性函数。线性方程…

Docker 容器化技术:构建高效、可移植的开发环境和部署流程|Docker 网络

为了支持网络协议栈的多个实例,Linux 在网络协议栈中引入了网络命名空间。这些独立的协议栈被隔离到不同的命名空间中,处于不同命名空间中的网络协议栈是完全隔离的,彼此无法通信。通过对网络资源的隔离,就能在一台宿主机上虚拟多…

FFmepg--视频编码流程--yuv编码为h264

文章目录 基本概念流程api核心代码 基本概念 YUV格式:是一种颜色编码方式,YUV分别为三个分量:‘Y’是明亮度,也就是灰度值;‘U’和‘V’是色度 YUV格式的分类: planar的YUV格式:先存储planar的…

初步了解序列化和反序列化

01什么是序列化和反序列化 序列化是将对象转化为字符串以便存储的一种方式。而反序列化恰好是序列化的逆过程,反序列化会将字符串转化为对象供程序使用。 常见的php系列化和反系列化方式主要有:serialize,unserialize;json_enco…

姿态旋转的哥氏定理以及速度微分的推导

姿态旋转中涉及到坐标系的转换,在有相对旋转的两个坐标系中观察一个向量的变化,用到了哥氏定理。 例如在i系中观察e系下的运动,则 哥氏定理的公式 wie是e相对于i的角运动 注意符号i在前e在后。 wie是e相对于i的角运动 注意符号i在前e在…

R语言:如何基于地球外辐射(Ra)和相对日照(n/N)计算太阳辐射Rs?

正在编写相关软著,借此机会了解R语言的基本语法和一些处理流程,所以解释稍微繁琐。 Note: 使用的R语言版本是 R version 4.3.2 (2023-10-31 ucrt) 使用的RStudio编辑器版本是: 01 基于随机森林的插值填补缺失值 这是目前处理…

深入探索C与C++的混合编程

实现混合编程的技术细节 混合使用C和C可能由多种原因驱动。一方面,现有的大量优秀C语言库为特定任务提供了高效的解决方案,将这些库直接应用于C项目中可以节省大量的开发时间和成本。另一方面,C的高级特性如类、模板和异常处理等,…

mysql数据库中查询重复数据和去重数据

文章目录 1.查找重复数据2. 查到重复组的唯一数据3.删除重复数据4.注意重复的内容和删除的记录数是否一致 1.查找重复数据 select gene_entrez_id,count(*) a from diag_gene GROUP BY gene_entrez_id HAVING a > 12. 查到重复组的唯一数据 原理 分组后如果组内多个数据…

跨境电商干货|如何在Snapchat上做电商?

Snapchat是一个与用户互动与创意内容为主的平台,也因其广阔的受众群体广受跨境电商卖家的喜爱,成为跨境出海的热门渠道之一。本文将为大家分享,要在Snapchat上进行电子商务,可以遵循以下步骤: 1、创建商业账户 在Snap…

卷积的九大变体算法

注意:本文引用自专业人工智能社区Venus AI 更多AI知识请参考原站 ([www.aideeplearning.cn]) 引言 卷积神经网络(CNN)的核心在于其多样化的卷积技术,每种技术针对不同的应用和性能需求有着独特的优势。逐…

力扣46. 全排列

Problem: 46. 全排列 文章目录 题目描述思路及解法复杂度Code 题目描述 思路及解法 回溯可以理解为是在对一个多叉树的操作 1.回溯结束条件:当决策路径的长度等于nums数组的长度时,将当前的结果添加到二维结果集res中; 2.每一次决策的选择处…

Qt 图形视图 /基于Qt示例DiagramScene解读图形视图框架

文章目录 概述从帮助文档看示例程序了解程序背景/功能理清程序概要设计 分析图形视图的协同运作机制如何嵌入到普通Widget程序中?形状Item和文本Item的插入和删除?连接线Item与形状Item的如何关联?如何绘制ShapeItem间的箭头线? 下…

穿越半个世纪,探索中国数据库的前世今生

引言 在数字化潮流席卷全球的今天,数据库作为 IT 技术领域的“活化石”,已成为数字经济时代不可或缺的基础设施。那么,中国的数据库技术发展经历了怎样的历程?我们是如何在信息技术的洪流中逐步建立起自己的数据管理帝国的呢&…

Hadoop大数据应用:HDFS 集群节点扩容

目录 一、实验 1.环境 2.HDFS 集群节点扩容 二、问题 1.rsync 同步报错 一、实验 1.环境 (1)主机 表1 主机 主机架构软件版本IP备注hadoop NameNode (已部署) SecondaryNameNode (已部署) Resourc…