VideoCapture

Opencv 图像处理

五迷三道 提交于 2020-11-01 18:18:23
cmd.exe 安装命令行 》pip install opencv-python 》pip install tensorflow 》pip install keras 必须安装tensorflow基础之上 板块一、 几何图形(cv2 图像处理) 图片导入; 图片长宽通道数学; 图片裁剪; 图片输出; 图片保存文件; tu = cv2.imread('image.jpg') (h,w,t)=tu.shape print(tu.shape) cX,cY = (w//2,h//2) print(cX) tl = tu[0:cY,0:cX] tr = tu[0:cY,cX:w] bl = tu[cY:h,0:cX] br = tu[cY:h,cX:w] def zzImage(zhou): plt.imshow(zhou) plt.axis('off') plt.show() zzImage(br) # 裁剪顺序 先y,再x cv2.imwrite('newImage.jpg',image) 封装常用函数 代码块(.py文件) 包含图片旋转代码 import cv2 import matplotlib.pyplot as plt import numpy as np # 读取图片 def imgRead(src): src = cv2.imread(src) return cv2

记一次OpenCv打开摄像头失败问题的处理

眉间皱痕 提交于 2020-10-14 19:53:02
补注 我个人的测试环境为: Python 3.8 OpenCV 4.4 测试过程中,遇到错误,受益于下面引文,原文如下: 最近做一个项目要用到opencv调用摄像头,遇到一个问题让折腾我一晚上才搞定,为避免有人遇到和我同样的问题,在此做个记录。 错误 问题描述:使用VideoCapture打开摄像头时,摄像头总是闪一下就关闭,查看错误信息发现有一行警告([ WARN:0] Failed to set mediaType (stream 0, (640x480 @ 30) MFVideoFormat_RGB24(unsupported media type)),大意上是告诉我媒体类型不匹配,设置分辨率失败! 网上搜了很多关于此类型的问题,都没能解决我的问题。 最后突然想到去github bug反馈那边搜了一下,还真让我搜到一丝线索,说是调用VideoCapture打开媒体文件时如果第二个参数传入cv::CAP_MSMF(capture.open(0, cv::CAP_MSMF))就有可能出现这种问题。这是该Bug链接VideoCapture fails to get frame if I use msmf and mp4 has audio stream,有兴趣可以了解下。 回头上面我遇到的错误信息,不正是MSMF类型的吗?原来VideoCapture打开摄像头默认媒体类型是CAP

玩了下opencv的aruco(python版)

て烟熏妆下的殇ゞ 提交于 2020-10-07 04:32:49
简单的玩了下opencv里头的aruco,用的手机相机,手机装了个 ip摄像头 ,这样视频就可以传到电脑上了。 首先是标定,我没打印chessboard,直接在电脑屏幕上显示,拍了17张,大概如下: 又在手机上装了个 尺子 之类的app,比划着量了下,每个格子大概是18.1 mm,这个棋盘是10 x 7的棋盘。 要pip install opencv-contrib-python才有扩展模块,扩展模块中包含aruco 然后标定了一下: 1 import cv2 2 import numpy as np 3 import glob 4 import matplotlib.pyplot as plt 5 import matplotlib.patches as patches 6 7 8 # 找棋盘格角点 9 10 criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 30, 0.001) # 阈值 11 # 棋盘格模板规格 12 w = 9 # 10 - 1 13 h = 6 # 7 - 1 14 # 世界坐标系中的棋盘格点,例如(0,0,0), (1,0,0), (2,0,0) ....,(8,5,0),去掉Z坐标,记为二维矩阵 15 objp = np.zeros((w*h,3 ), np.float32)

Python实现扫码工具

大兔子大兔子 提交于 2020-10-02 12:08:53
Python实现扫码工具 二维码作为一种信息传递的工具,在当今社会发挥了重要作用。从手机用户登录到手机支付,生活的各个角落都能看到二维码的存在。那你知道二维码是怎么解析的吗?有想过自己实现一个扫码工具吗?如果想的话就继续看下去吧! 一、案例分析 我们先思考一下,实现扫码工具需要写什么操作。在扫码过程中我们需要打开摄像头,如何由手机或者电脑识别二维码。所以我们要实现两个关键的步骤:调用摄像头、识别二维码。 这两个操作分别对应了两个模块,它们就是opencv和pyzbar,其中opencv是英特尔的计算机视觉处理模块,而pyzbar则是用于解析二维码的模块。 二、环境 环境包括python环境和模块。我的环境如下: 系统:Windows 10 python:python 3.7 .9 opencv:opencv - python - 4.4 .0 .44 pyzbar:pyzbar - 0.1 .8 模块安装很简单,我们直接用pip安装,先安装opencv模块: pip install opencv-python 然后是pyzbar模块: pip install pyzbar 在未指定安装版本时,系统会自动安装最新版。安装好模块后,我们就可以来实现扫码工具了。 三、识别二维码 有了pyzbar模块后,我们识别二维码的工作就非常简单了,首先需要准备一张二维码。有了二维码后就可以开始解析了

虹软人脸识别——官方 Qt Demo 移植到 Linux

两盒软妹~` 提交于 2020-08-12 01:55:51
一、前言 最近需要在 Linux 平台下开发一个人脸识别相关的应用,用到了虹软的人脸识别 SDK。之前在 Windows 平台用过,感觉不错,SDK 里面还带了 Demo 可以快速看到效果。打开 Linux 版本的 SDK 里面没有发现 Demo,于是想着把 Windows 的 Demo 移植到 Linux。这篇文章记录了移植的过程,Linux 用的是 Ubuntu 20.04(使用虚拟机 VMware Workstation 15 Player)。 二、配置依赖 2.1 ArcFace SDK 到虹软官网下载 人脸识别 SDK 3.1 Linux 增值版本 解压到合适的目录,并从官网获取 APP_ID、SDK_KEY 和 ACTIVE_KEY,用于写到配置文件用来激活 SDK。 2.2 OpenCV 到 OpenCV 官网下载 源码 ,我用的版本是 3.4.9 。可以按照官网的教程 Installation in Linux 自行编译,我参考官网教程使用下面的这些命令在 GCC 9.3.0(Ubuntu 20.04 自带的编译器) 上编译成功。 sudo apt update sudo apt install build-essential sudo apt install cmake git libgtk2.0-dev pkg-config libavcodec-dev

Webrtc 开源代码的简单介绍

我只是一个虾纸丫 提交于 2020-08-08 11:23:07
WebRTC提供了视频会议的核心技术,包括音视频的采集、编解码、网络传输、显示等功能,并且还支持跨平台:windows,linux,mac,android, iOS等。Webrtc 是多媒体通信技术的未来趋势,Google为了成为标准的主导者,将Chrome浏览器里的Webrtc实现代码开源了,浏览器的开源的WebRTC是众多同仁学习研究的重要资源,这个开源实现中的任何的一个技术点都可以拿出来列一个专题进行讨论,这里我们只能简单的介绍一下。 一、视频相关 视频采集---video_capture 源代码在webrtc\modules\video_capture\main目录下,包含接口和各个平台的源代码。 在windows平台上,WebRTC采用的是dshow技术,来实现枚举视频的设备信息和视频数据的采集,这意味着可以支持大多数的视频采集设备;对那些需要单独驱动程序的视频采集卡(比如海康高清卡)就无能为力了。 视频采集支持多种媒体类型,比如I420、YUY2、RGB、UYUY等,并可以进行帧大小和帧率控制。 视频编解码---video_coding 源代码在webrtc\modules\video_coding目录下。 WebRTC采用I420/VP8编解码技术。 VP8是google收购ON2后的开源实现,并且也用在WebM项目中。 VP8能以更少的数据提供更高质量的视频

【python-opencv 】一、图像的加载与保存

北城余情 提交于 2020-05-04 19:23:29
1.准备工作 没学过Python... 我先参考了牛客网的Python教程: https://www.nowcoder.com/tutorial/10005/dc2c82d6557548beb0e2252869be13d8 (没看多少,不会再回来查) 首先装了个python   https://www.python.org/ 然后再cmd下输入  pip install opencv-python 还装了个IDE   PyCharm 2.读取和显示一张图片 import cv2 as cv img = cv.imread(" 1.png" ) # 读取图片 这里1.png和python文件在同一目录下 cv.imshow(" 1" ,img) # 显示图片  ""里面是窗口的名称 3.查阅的函数资料 imread函数 imread为image read的缩写,即图像读取的意思 【函数原型】cv2.imread(path_of_image, intflag) 参数1:需要读入图像的路径 参数2:标志以什么形式读入图像,可以选择一下方式: cv2.IMREAD_COLOR【1】: 加载彩色图像。任何图像的透明度都将被忽略。它是默认标志 cv2.IMREAD_GRAYSCALE【0】: 以灰度模式加载图像 cv2.IMREAD_UNCHANGED【-1】: 保留读取图片原有的颜色通道

直播技术iOS端视频采集

心已入冬 提交于 2020-04-28 12:32:00
今天图玩智能科技继续介绍一下直播技术中在iOS下进行的视频采集。我们为企业提供直播平台的二次开发服务,欢迎随时咨询www.toivan.com. 要了解iOS是怎样进行视频采集的,首先我们要了解 AVCaptureSession,AVCaptureDevice等几个基本概念及iOS上视频采集的工作原理。 基本概念 iPhone 包括了摄像头,麦克风等设备,我们用 AVCaptureDevice 代表它们。同时,摄像头又是一个输入设备,我们还可以用AVCaptureDeviceInput 表示它;同样,麦克风则是另一个输入设备(AVCaptureDeviceInput)。 为了方便,iOS定义了AVCaptureSession类来管理这些输入设备,可以通过 AVCaptureSession 打开某个输入设备进行数据采集,或关闭某个输入设备。 当数据被采集回来后,需要把这些数据进行保存,处理,于是iOS又定义了AVCatpureOutput来做这件事。 下面我们分别介绍每个类。 AVCaptureSession AVCaptureSession 对象用于管理采集活动,协调数据的流入流出。 AVCaptureSession 对象的 startRunning() 方法是一个阻塞调用,可能需要一些时间,因此您应该在串行队列上执行会话设置,以使主队列不被阻止(这将保持UI响应)

Android中webview的使用

百般思念 提交于 2020-04-17 20:22:20
一、 问题:在顶部或者底部反复快速滑动界面,会出现自动向反方向滚动,或者视频有声音没有画面。   解决:在AndroidManifest.xml中给webview所在的activity添加硬件加速的属性:android:hardwareAccelerated="true"。   说明:1、view控件不能开启硬件加速(webView.setLayerType(View.LAYER_TYPE_HARDWARE,null);这个设置无效),但是view控件可以关闭该view的硬件加速:webView.setLayerType(View.LAYER_TYPE_SOFTWARE,null); 2、setLayerType方法只有在api>11才有。 3、参考网址: https://blog.csdn.net/u010142437/article/details/70915694 二、 webview的设置   WebSettings webSettings=webView.getSettings();    webSettings.setUseWideViewPort(true);//设置WebView是应该启用对“viewport”HTML元标记的支持还是应该使用宽视口。true:支持<meta>标签的viewport属性    if (Build.VERSION.SDK_INT >=

模型仅有7M:轻量级高精度人脸检测方法DBFace

大憨熊 提交于 2020-04-11 17:56:11
这个仅 7M 大小的人脸监测模型几乎监测出了世界最大自拍照中的所有人像! 项目简介 之前机器之心报道过一个跨平台人脸检测项目,在 CPU 上就能轻松跑出 1000FPS。这次介绍的项目也是一个轻量级人脸检测项目。不同的是,该项目在保持较小参数量的前提下,检测精度要高很多,并且只需要 OpenCV 和 PyTorch 就能运行。 DBFace 是一个轻量级的实时人脸检测方法,其有着更快的检测速度与更高的精度。下图展示了多种人脸检测方法在 WiderFace 数据集上的测试效果。可以看到不仅 DBFace 模型的大小最小,其在 Easy、medium、Hard 三个测试任务中均取得了最高的检测精度。 项目地址: https:// github.com/dlunion/DBFa ce WiderFace 是一个关于人脸检测的基准跑分数据集,其中包含 32,203 张图片以及在各方面剧烈的 393,703 张人脸,数据集具有从简单到困难等不同难度的任务。下图是改数据集中一些样本的展示,可以看到,要想准确地检测出图中所有人脸还是很有挑战的。DBFace 在该数据集的不同任务上分别取得 0.925、0.920、0.847 的准确率,实属不易。 有关 WiderFace 的详细介绍请读者移步其官网: http:// shuoyang1213.me/WIDERFA CE/ 效果展示