首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用OpenCV实现摄像头测距

摄像头测距就是计算照片中的目标物体到相机的距离。可以使用相似三角形(triangle similarity)方法实现,或者使用更复杂但更准确的相机模型的内参来实现这个功能。...所以焦距 F 等于: 此时移动相机离物体更近或者更远,我们可以应用相似三角形得到计算物体到相机的距离的公式: 原理大概就是这样,接下来使用 OpenCV 来实现。...,就可以通过相似三角形公式计算目标到相机的距离了。...使用 cv2.imread 函数从磁盘加载图片,然后通过 find_marker 函数得到图片中目标物体的坐标和长宽信息,最后根据相似三角形计算出相机的焦距。...在结果中,我们根据得到的轮廓信息将方框画了出来,并显示出了距离。下面是得到的几个结果图: 总结 通过这篇文章,我们学会了使用相似三角形计算图片中一个已知物体到相机的距离。

2.4K21

使用OpenCV实现摄像头测距

重磅干货,第一时间送达 本文转载自知乎z.defying https://zhuanlan.zhihu.com/p/63149294 摄像头测距就是计算照片中的目标物体到相机的距离。...所以焦距 F 等于: 此时移动相机离物体更近或者更远,我们可以应用相似三角形得到计算物体到相机的距离的公式: 原理大概就是这样,接下来使用 OpenCV 来实现。...,就可以通过相似三角形公式计算目标到相机的距离了。...使用 cv2.imread 函数从磁盘加载图片,然后通过 find_marker 函数得到图片中目标物体的坐标和长宽信息,最后根据相似三角形计算出相机的焦距。...在结果中,我们根据得到的轮廓信息将方框画了出来,并显示出了距离。下面是得到的几个结果图: 总结 通过这篇文章,我们学会了使用相似三角形计算图片中一个已知物体到相机的距离。

11100
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    独家|OpenCV1.10 使用OpenCV实现摄像头标定

    作者:Kaustubh Sadekar Satya Mallick翻译:陈之炎 校对:王可汗 本文约3200字,建议阅读5分钟本文为大家系统地介绍了使用OpenCV实现摄像头标定。...通过摄像头标定,可以掌握摄像头的所有信息(参数或系数),从而可以确定现实世界中的三维点与摄像头捕获图像的二维投影(像素)之间的精确关系。 通常,摄像头标定意味着恢复以下两类参数: 1....在下图中,采用了几何标定来估计透镜的参数,从而消除图像的失真。 对失真图像采用几何标定之后的效果 使用OpenCV实现摄像头标定 为了更好地理解整个标定过程,首先需要了解成像的几何特征。...在标定过程中,通过一组已知的三维点(Xw, YW,Zw)及其在图像中相应的像素位置(u,v)来计算出摄像头的参数。 对于3D点,可以在许多不同的方向上拍摄一个已知尺寸的棋盘格图案。...接下来,确保棋盘格为静态,并通过移动摄像头拍摄出多幅棋盘图像。 或者,也可以保持摄像头不动,拍摄不同方向的棋盘格图案,从数学的角度来看,这两种情况很类似。

    2.2K21

    通过 Python 接口使用 OpenCV 原

    保存图像(必须设置保存图像的路径和扩展名) cv2.imwrite('result.png', im) # 使用 plt 显示图像(可显示像素坐标及像素值)、保存图像 # 使用 plt 显示图像时,必须先把图像转换为...颜色空间转换 在OpenCV 中,图像不是按传统的RGB 颜色通道,而是按BGR 顺序(即RGB 的倒序)存储的。读取图像时默认的是BGR,但是还有一些可用的转换函数。...# 1.使用opencv读取并创建灰度图像,按 BGR 顺序 im = cv2.imread('empire.jpg') gray = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY...to another region ball = img[280:340, 330:390] # 注意:340和390取不到 img[273:333, 100:160] = ball 参考文档: 1.通过...Python 接口使用 OpenCV :https://blog.csdn.net/mzpmzk/article/details/68952160

    57220

    使用Keras和OpenCV实时预测年龄、性别和情绪 (详细步骤+源码)

    作者 | Sun Weiran 翻译 | OpenCV与AI深度学习 导读 本文将介绍如何使用 Keras 和 OpenCV 从网络摄像头实时预测年龄、性别和情绪。...在本文中,我们将使用完整的照片并实施我们自己的人脸对齐方法以提高准确性。 图像预处理——UTKface 数据集 我们需要使用 MTCNN 或任何其他面部识别模型从整张照片中裁剪人脸。...对于年龄和性别模型,我们将使用 MTCNN 对完整照片使用居中调整大小的方法。两个模型所需的输入大小都设置为 (224, 224, 3)。...的集成说明 基本上,openCV 从您的网络摄像头捕获视频(第 2 行)。...这个 RGB 帧将被发送到 detect_face 函数(第 22 行),该函数首先使用 MTCNN 检测帧中的所有人脸,并且对于每个人脸,使用 3 个经过训练的模型进行预测以生成结果。

    1.8K20

    如何使用OpenCV在Python中访问IP摄像头

    在此文章中,我将解释如何在Python中设置对IP摄像机流的访问。 首先,必须找出网址流是什么。通过在构造函数中提供摄像机的网址流,可以在OpenCV中访问IP摄像机cv2.VideoCapture。...可以使用某些网络扫描实用程序(例如在linux上的arp-scan)找到摄像机的IP地址。...网址进一步的细节,如Protocol,Credentials和Channel应该可以在相机说明书或软件/手机应用程序中找到。我们通过在网络上搜索相机的型号来找到相机的网址流。...通常,摄像机使用RTSP或HTTP协议来传输视频。...IP摄像机网址流的示例如下所示:rtsp://192.168.1.64/1 因此,可以通过以下代码实现使用OpenCV从相机获取快照: capture = cv2.VideoCapture('rtsp:

    6.7K20

    基于OpenCV的摄像头圆心计算

    导语:这几天,小编学习到了一个好玩的摄像头图像圆心计算的程序代码。另外,小编Tom邀请你一起搞事情! 在这份程序代码中,小编在Python3下运行,使用到了numpy库和opencv库。...关于库的下载可以直接通过pip下载对应的库,或者在这个网站:http://www.lfd.uci.edu/~gohlke/pythonlibs/ 找到对应的位置,下载后pip对应的路径安装于安装包的名字安装即可...首先,我们需要了解到怎么样使用python程序获取我们电脑摄像头或者外接的usb免驱摄像头的图像。获取到了摄像头的图像之后我们便可以对图像进行分析了。 ?...了解到了基本的摄像头操作,我们便可以读取摄像头的图像进行分析了。这里实现的是图像的圆的识别,描边与圆心的计算。...生成三个窗口,分别为原始的摄像头图像,对圆进行描边的摄像头图像与颜色特征识别的图,此处为蓝色。(附上程序源码和效果) ? ? 小编使用的是电脑自带的摄像头进行识别和圆心计算。

    1.2K50

    DeepFace:人脸识别库 DeepFace 简单认知

    请注意,DeepFace 中的默认检测器是 OpenCV。使用 OpenCV 进行人脸检测 Dlib: 该检测器在后台使用 hog 算法。因此,与 OpenCV 类似,它不是基于深度学习的。...detectors = ["opencv", "ssd", "mtcnn", "dlib", "retinaface"] 应该使用哪种人脸检测器?...需要根据实际情况分析 如果 高置信度,考虑使用 RetinaFace 或 MTCNN 如果希望高速,清洗一部分没有人脸的照片,那么,可以使用 OpenCV 或 SSD 5人脸识别模型 人脸识别模型,即通过对人脸库的数据进行特征提取...- detector_backend: 参数指定要使用的人脸检测器的后端,例如 OpenCV、RetinaFace、MTCNN 等。...给出,同时对切片大小过滤,太小的直接舍弃 通过 opencv 和 Dlib 获取特征点和头部姿态,这里实际上又进行了一次检测,使用 Dlib 库 检测,过滤头部姿态欧拉角小于 15 度的数据 过滤出的数据通过

    1.4K20

    实战 | OpenCV带掩码(mask)的模板匹配使用技巧与演示(附源码)

    导读 本文将重点介绍 OpenCV带掩码(mask)的模板匹配使用技巧与演示。...(来源公众号:OpenCV与AI深度学习) 背景介绍 在使用模板匹配时,一些特定情况中我们并不需要将整个模板图像拿来匹配,而只需要其中特定的部分做模板,其他部分则加入反而会影响匹配结果。...如下图所示: 原本左边的模板图除了我们想要的部分外,还有外部的白色背景区域,如果将整张图作为模板,来做模板匹配,匹配结果会出错,结果如下: 加上掩码后匹配,结果如下: 详细步骤 在核心方法还是使用...OpenCV的matchTemplate函数,只是这次我们要指定mask(掩码),匹配时对于掩码中的非0像素匹配算法起作用,掩码中的灰度值为0像素位置,匹配算法不起作用。...这里获取掩码的方法不唯一,可以通过预先加载获得,可以通过二值化,图像分割等手段获得,最终的掩码图像需要与模板图像大小一致,同时为单通道图像,mask的非0像素对应的位置就是我们关心的匹配内容,灰度值为的

    6.6K21

    冷知识 | OpenCV绘制带箭头方向的线段

    点击上方蓝字关注我们 微信公众号:OpenCV学堂 关注获取更多计算机视觉与深度学习知识 引子 我根据一个矩形进行了各种角度旋转,就想通过绘制一个带方向的线段表示它,通过旋转矩阵很容易的获取了两个点坐标...,但是很快遇到了一个新问题,怎么绘制那个箭头,就是带箭头的线段,OpenCV中的cv.line函数只支持绘制不带箭头的线段,于是我决定重复造轮子 手动版实现带箭头的线段绘制 因为我知道opencv有个函数是...line无法支持绘制带箭头的直线,于是网上一通猛搜,发现一个哥们博客写OpenCV3如何绘制带箭头的线段,C++的代码!...还有另外一个函数可以直接绘制带箭头的线段的,就是说我在重复造轮子!...OpenCV4.5.4 直接支持YOLOv5 6.1版本模型推理 OpenVINO2021.4+YOLOX目标检测模型部署测试 比YOLOv5还厉害的YOLOX来了,官方支持OpenVINO推理

    1K30

    JavaCV的摄像头实战之七:推流(带声音)

    本篇概览 本文是《JavaCV的摄像头实战》的第七篇,在《JavaCV的摄像头实战之五:推流》一文中,咱们将摄像头的内容推送到媒体服务器,再用VLC成功播放,相信聪明的您一定觉察到了一缕瑕疵:没有声音...虽然《JavaCV的摄像头实战》系列的主题是摄像头处理,但显然音视频健全才是最常见的情况,因此就在本篇补全前文的不足吧:编码实现摄像头和麦克风的推流,并验证可以成功远程播放音视频 关于音频的采集和录制...AudioService的类中,也就是说上面两幅图的深色部分的代码都在AudioService.java中,主程序使用此类来完成音频处理 接下来开始编码 开发音频处理类AudioService 首先是刚才提到的...),得益于JavaCV的强大,整个过程是如此的轻松愉快,接下来请继续关注欣宸原创,《JavaCV的摄像头实战》系列还会呈现更多丰富的应用; 源码下载 《JavaCV的摄像头实战》的完整源码可在GitHub...里面有多个子工程,《JavaCV的摄像头实战》系列的代码在simple-grab-push工程下:

    1.7K31

    最快人脸检测开源库对比:ZQCNN-MTCNN vs libfacedetection

    最快人脸检测库开源 2019年3月25日,Amusi 在github上发现 follow很久的左庆大佬刚push了一个项目: ZQCNN-MTCNN-vs-libfacedetection。...于是 Amusi 第一时间联系了左庆大佬,得到他本人的授权,下面实验对比数据来自 ZQCNN-MTCNN-vs-libfacedetection: 链接: https://github.com/zuoqing1988.../ZQCNN-MTCNN-vs-libfacedetection libfacedetection开源项目之前已经介绍过,这里再简单介绍一下 ZQCNN开源项目: 一款比mini-caffe更快的Forward...依赖库: windows:mkl, opencv3.4.2 arm-linux: openblas, opencv3.4.2 libfacedetection:下载时间2019-03-25 09:00...(二) ARM-LINUX下对比 (测试机器为firefly rk3399) ZQCNN: 先编译OpenBLAS, OpenCV3.4.2, 然后编译ZQCNN, 使用命令cmake ..

    3.4K31

    OpenCV中支持的人脸检测方法整理与汇总

    HARR特征级联分类器 HARR特征级联分类器人脸检测来自VJ的2004论文中提出,其主要思想可以通过下面一张图像解释: ?...但是OpenCV4中的人脸检测算法采用深度学习技术,已经可以直接使用,达到实时跟稳定检测,在很多应用场景中无需再次训练模型。这样是极大的方便了开发者,节省了大量时间。...MTCNN支持 此外OpenCV还2016年提出的三阶段的人脸检测模型MTCNN的调用,也可以达到实时运行,MTCNN的网络结构如下: ? ?...MTCNN还是很多嵌入式设备上人脸检测选择,因为它不光支持人脸检测,还支持五点landmark输出,可以实现人脸对齐,为人脸识别做前期的处理。...OpenVINO中人脸检测模型 OpenCV4 在DNN中使用OpenVINO推理引擎模块实现对模型加速,同时支持OpenVINO的预训练模型库的加载与使用。

    2.1K40

    使用网络摄像头和Python中的OpenCV构建运动检测器(Translate)

    本期我们将学习如何使用OpenCV实现运动检测 运动检测是指检测物体相对于周围环境的位置是否发生了变化。接下来,让我们一起使用Python实现一个运动检测器应用程序吧!...接下来我们将一步步的完成该应用程序的构建。 首先,我们将通过网络摄像头捕获第一帧,并将它视为基准帧,如下图所示。通过计算该基准帧中的对象与新帧对象之间的相位差来检测运动。...从最基本的安装开始,我们需要安装Python3或更高版本,并使用pip安装pandas和OpenCV这两个库。这些工作做好,我们的准备工作就完成了。 第一步:导入需要的库: ?...在下面的代码中,我们将会了解到在什么时候需要使用上面涉及到的每一项。 第三步:使用网络摄像机捕获视频帧: ? 在OpenCV中有能够打开相机并捕获视频帧的内置函数。...其中输入参数“0”表示计算机硬件端口号为0的摄像机。如果我们拥有了多个摄像头或闭路电视等设置,可以通过该参数提供相应的端口号。 第四步:将捕捉到的帧转换为灰度图像,并应用高斯模糊去除噪声: ?

    2.9K40

    使用Python+Opencv从摄像头逐帧读取图片保存在本地

    今天测试的时候,遇到了一个问题,测试需求是,需要把摄像头拍摄的实时视频逐帧率保存下来。经过查阅资料以及网友帮助,目前已经完成。记录下来希望可以帮助有需要的朋友。...1、思路使用Python+Opencv,从摄像头的实时视频流中逐帧读取图片,保存到本地2、工具安装Python安装Opencv3、分类目前测试的过程中遇到了三种类型的摄像头数据读取,分别是:USB普通摄像机...:直接使用Python+Opencv,进行数据采集self.cap = cv2.VideoCapture(0);0是本地摄像头USB工业摄像头:使用厂家自带的SDK进行二次开发,例如某厂家的SDK如下:...图片网络摄像头:从RTSP流中读取数据,读取方法,以大华普通网络摄像头为例:图片4、示例# -*- coding: cp936 -*-"""Author:xxxxxxDate:2019-09-23Discription...timeimport numpy as npfrom multiprocessing import Processimport threadclass CamaroCap(object): #打开摄像头

    1.8K50

    面部识别算法是如何工作的?

    人类是如何识别人脸的? 也许,人类大脑中的神经元首先识别场景中的人脸(从人的体形和背景),然后提取面部特征,并通过这些特征对人进行分类。我们已经在一个无限大的数据集和神经网络上进行了训练。...本文评估了如下几个最先进的物体检测算法: OpenCV(Haar-Cascade) MTCNN YoloV3 和 Yolo-Tiny SSD BlazeFace ShuffleNet 和 Faceboxes...在不同的姿态和光照条件下的人脸检测 OpenCV(Haar-ascade) 我们从 OpenCV 的 Haar-cascade 实现开始,它是一个用 C 语言编写的开源图像处理库。...优点: 它比 OpenCV 的 Haar-Cascade 方法准确性更高 缺点: 运行时间较长。...缺点: 这个模型的优化目标是对手机摄像头获取的图像进行人脸检测,因此它预期人脸会覆盖图像中的大部分区域,而当人脸尺寸较小时,它的识别效果就是很好。

    72320

    流媒体服务器如何通过opencv获取IP摄像头(IP-camera)实时视频流

    我们在想要获取视频流的时候,可以通过网络摄像头获取实时视频流,但是这种方法的缺陷就是摄像头和主机必须连在一起,那这种在室外部署的时候就会非常麻烦并且不安全,还有一种方法,就是用海康威视或者大华的监控摄像头...,然后通过IP地址可以无线获取视频流,这样就实现了主机和摄像头分开,方便部署。...鱼眼摄像头相比普通的摄像头经过扭曲,因此在应用的时候一般需要进行反扭曲,这一步会造成比较大的延迟,因此没有不是特定需求的话尽量使用普通的就可以。...2.通过RTSP地址获取视频流 首先需要知道海康设备的RTSP地址,可以通过这里进行查看。...Channels/1和Channels/2分别对应主码流和子码流地址,两者的分辨率不同。IP摄像头无法通过opencv调节分辨率,只能在海康的监控界面的配置进行设置(如下)。 ?

    3K30
    领券