opencv_GUI

图像入门

import numpy as np
import cv2 as cv
# 用灰度模式加载图像
img = cv.imread('C:/Users/HP/Downloads/basketball.png', 0)# 即使图像路径错误,它也不会抛出任何错误,但是打印 img会给你None
cv.imshow('image', img)
cv.waitKey(5000) # 一个键盘绑定函数,它的参数是以毫秒为单位的时间。该函数为任意键盘事件等待指定毫秒。如果你在这段时间内按下任意键,程序将继续。如果传的是 0,它会一直等待键盘按下。
cv.destroyAllWindows()
cv.imshow('image', img)
cv.waitKey(5000) # 一个键盘绑定函数,它的参数是以毫秒为单位的时间。该函数为任意键盘事件等待指定毫秒。如果你在这段时间内按下任意键,程序将继续。如果传的是 0,它会一直等待键盘按下。
cv.destroyAllWindows()
cv.namedWindow('image', cv.WINDOW_NORMAL)  # cv.WINDOW_NORMAL:先创建窗口再加载图片,此时窗口大小可调整
cv.imshow('image',img)
cv.waitKey(0)
cv.destroyAllWindows()
cv.imwrite('C:/Users/HP/Downloads/basketball_resave.png',img)  # 保存
# 使用 Matplotlib 来显示图像
from matplotlib import pyplot as pltimg = cv.imread('C:/Users/HP/Downloads/basketball.png',0)
plt.imshow(img, cmap = 'gray', interpolation = 'bicubic')
plt.xticks([]), plt.yticks([]) # 隐藏 X 和 Y 轴的刻度值
plt.show()

在这里插入图片描述

视频入门

import numpy as np
import cv2 as cv# 从相机捕捉视频cap = cv.VideoCapture(0)  # 第一个摄像机,第二个为 1
while(True):# 一帧一帧捕捉ret, frame = cap.read()# 我们对帧的操作在这里gray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY)# 显示返回的每帧cv.imshow('frame',gray)if cv.waitKey(1) & 0xFF == ord('q'):break
# 当所有事完成,释放 VideoCapture 对象
cap.release()
cv.destroyAllWindows()
import numpy as np
import cv2 as cv# 播放视频文件(但是播几秒就会报错是为啥?cap = cv.VideoCapture('C:/Users/HP/Downloads/dancing.mp4') 
while(cap.isOpened()):ret, frame = cap.read()gray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY)cv.imshow('frame',gray)if cv.waitKey(1) & 0xFF == ord('q'):break
cap.release()
cv.destroyAllWindows()
import numpy as np
import cv2 as cv# 存储视频cap = cv.VideoCapture(0)
# 声明编码器和创建 VideoWrite 对象
fourcc = cv.VideoWriter_fourcc(*'XVID')
out = cv.VideoWriter('C:/Users/HP/Downloads/output.avi',fourcc, 20.0, (640,480))# 所以怎么保留一定时长就停?
while(cap.isOpened()): ret, frame = cap.read()if ret==True:frame = cv.flip(frame,0)# 写入已经翻转好的帧out.write(frame)cv.imshow('frame',frame)if cv.waitKey(1) & 0xFF == ord('q'):breakelse:break
# 释放已经完成的工作
cap.release()
out.release()
cv.destroyAllWindows()

绘图功能

import numpy as np
import cv2 as cv# 创建一张空白的画布
canvas = np.zeros((512, 512, 3), dtype=np.uint8)
#img = np.zeros((512,512,3), np.uint8)# 画一条 5px 宽的蓝色对角线
cv.line(canvas,(0,0),(511,511),(255,0,0),5)# 用左上角和右下角在图像的右上角画一个绿色的矩形
cv.rectangle(canvas,(384,0),(510,128),(0,255,0),3)# 用圆心和半径在上面绘制的矩形上画一个内圆
cv.circle(canvas,(447,63), 63, (0,0,255), -1)# 椭圆
cv.ellipse(canvas,(256,256),(100,50),0,0,180,255,-1)  # canvas, (center), (axes), angle, start_angle, end_angle, color, thickness# 用各个顶点组成多边形
pts = np.array([[10,5],[20,30],[70,20],[50,10]], np.int32)
pts = pts.reshape((-1,1,2))
cv.polylines(canvas,[pts],True,(0,255,255))# 绘制文本
cv.putText(canvas, 'OpenCV', (15, 480), cv.FONT_HERSHEY_SIMPLEX, 4, (255, 255, 255), 2)  # canvas, text, position, font, font_scale, color, thicknesscv.imshow('logo',canvas)  # 图像的名字,画布代号
cv.waitKey(0)
cv.destroyAllWindows()

在这里插入图片描述

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

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

相关文章

Redis集群(5)

集群原理 节点通信 通信流程 在分布式存储系统中,维护节点元数据(如节点负责的数据、节点的故障状态等)是关键任务。常见的元数据维护方式分为集中式和P2P方式。Redis集群采用P2P的Gossip协议,这种协议的工作原理是节点之间不断…

解决生产问题的万能接口(Java编译器API的使用)

文章目录 前言Tool和ToolProvider编译器工具:JavaCompiler文件管理文件:FileObject文件管理器:JavaFileManager 诊断监听器:DiagnosticDemo:allPowerfulInterface具体实现测试 结语 前言 当生产环境出现问题时&#x…

【模拟-BM100 设计LRU缓存结构】

题目 BM100 设计LRU缓存结构 描述 设计LRU(最近最少使用)缓存结构,该结构在构造时确定大小,假设大小为 capacity ,操作次数是 n ,并有如下功能: Solution(int capacity) 以正整数作为容量 capacity 初始化 LRU 缓存get(key)&am…

windows音频服务未响应,电脑装完驱动还是软件导致没有声音

前两天浏览器突然没声音了,然后我试着搞了一下驱动,结果全没声音了。 至今仍然不确定问题的根源在哪,并且网上提供的大部分方法都没用,下面说一下我的解决方案。 winR启动命令行,输入services.msc 进入服务界面 双击…

OpenCV 双目相机标定

文章目录 一、简介1.1单目相机标定1.2双目相机标定二、实现代码三、实现效果参考资料一、简介 1.1单目相机标定 与单目相机标定类似,双目标定的目的也是要找到从世界坐标转换为图像坐标所用到的投影P矩阵各个系数(即相机的内参与外参)。具体过程如下所述: 1、首先我们需要…

r语言数据分析案例26-美元兑换欧元汇率分析与研究

一、研究背景: 汇率是国际贸易和金融中最重要的价格之一,它直接影响着各国的经济利益和国际竞争力。美元兑换欧元汇率是全球最重要的汇率之一,它的波动对全球经济和金融市场都有着深远的影响。因此,对美元兑换欧元汇率的分析和研…

MySQL学习——创建MySQL Workbench中的Connections

在MySQL Workbench中,Connections(连接)是用户与MySQL数据库进行交互的桥梁。 本文将添加一个新连接,该连接可以是初始连接,也可以是附加连接。在开始之前,必须安装、启动MySQL服务器的实例,并…

什么是SpringMVC

StringMvc简介 Spring web mvc和Struts2都属于表现层的框架,它是Spring框架的一部分,我们可以从Spring的整体结构中看得出来:

DevExpress Data Binding

DevExpress数据感知控件与任何数据访问技术(ADO.NET、Entity Framework、XPO等)兼容,并且可以显示来自实现IList、IBindingList或ITypedList接口的任何数据源的数据。有关更多详细信息,请参阅这些帮助主题:传统数据绑定…

python中用列表实现栈

【小白从小学Python、C、Java】 【考研初试复试毕业设计】 【Python基础AI数据分析】 python中用列表实现栈 选择题 以下代码最后一次输出的结果是? stack [] stack.append(1) stack.append(2) stack.append(3) print(【显示】stack ,stack) print(【显示】stack.…

【python】OpenCV—Background Estimation(15)

文章目录 中值滤波中值滤波得到图像背景移动侦测 学习来自 OpenCV基础(14)OpenCV在视频中的简单背景估计 中值滤波 中值滤波是一种非线性平滑技术,主要用于数字信号处理,特别是在图像处理中去除噪声。 一、定义与原理 定义&am…

面试官:MySQL也可以实现分布式锁吗?

首先说结论,可以做,但不推荐做。 我们并不推荐使用数据库实现分布式锁。 如果非要这么做,实现大概有两种。 1、锁住Java的方法,借助insert实现 如何用数据库实现分布式锁呢,简单来说就是创建一张锁表,比…

JVM 根可达算法

Java中的垃圾 Java中"垃圾"通常指的是不再被程序使用和引用的对象,具体表现在没有被栈、JNI指针和永久代对象所引用的对象。Java作为一种面向对象的编程语言,它使用自动内存管理机制,其中垃圾收集器负责检测和回收不再被程序引用的…

集成学习概述

概述 集成学习(Ensemble learning)就是将多个机器学习模型组合起来,共同工作以达到优化算法的目的。具体来讲,集成学习可以通过多个学习器相结合,来获得比单一学习器更优越的泛化性能。集成学习的一般步骤为:1.生产一组“个体学习…

开源WebGIS全流程常用技术栈

1 数据生产 1.1 uDig uDig(http://udig.refractions.net/)是一个基于Java开源的桌面应用框架,它构建在Eclipse RCP和GeoTools(一个开源的Java GIS包)上。可以进行shp格式地图文件的编辑和查看;是一个开源空间数据查看…

excel两个数据表格,怎样实现筛选的联动?

如图,想要通过处理器或者像素条件进行筛选,形成一个右边图2的对比表,如何实现实现联动显示呢? 这个在excel里可以借用数据透视表切片器来完成。步骤如下: 1.添加表 选中数据区域中任意一个单元格,点击 插…

跳动圆点加载动画

效果图: 完整代码: <!DOCTYPE html> <html> <head><meta charset="UTF-8" /><title>跳动圆点加载动画</title><style type="text/css">body {background: #ECF0F1;display: flex;justify-content: center;al…

“改进型”Howland 电流泵电路

“改进型”Howland 电流泵电路 “改进型”Howland 电流泵是一种使用差分放大器在分流电阻器 (Rs) 上施加电压的电路&#xff0c;从而产生能够驱动大范 围负载电阻的双极性&#xff08;拉电流或灌电流&#xff09;压控电流源。 设计注释 确保运算放大器的输入端&#xff08;V…

串口调试助手软件(ATK-XCOM) 版本:v2.0

串口设置 软件启动后&#xff0c;会自动搜索可用的串口&#xff0c;可以显示详细的串口信息&#xff0c;由于兼容性原因某些电脑可能不会显示。 超高波特率接收&#xff0c;在硬件设别支持的情况下&#xff0c;可自定义波特率&#xff0c;点“自定义”即可输入您想要的波特率&…

pycharm爬取BOSS直聘岗位信息

编译器&#xff1a;Pycharm 效果展示如图 简单原理描述&#xff1a;模拟人工动作爬取页面信息&#xff0c;运行脚本后代码自动打开浏览器获取相关信息&#xff0c;模拟人工进行页面跳转并自动抓取页面信息记录到表格中。 深入原理描述&#xff1a;页面翻转的时候会调用接口&am…