文章目录

  • 1.轮廓查找和轮廓绘制
  • 2.高斯去噪
  • 3.腐蚀和膨胀
  • 4.cv2.inRange函数
  • 5.cv2.minEnclosingCircle函数
  • 6.cv2.moments函数
  • 7.代码实战

1.轮廓查找和轮廓绘制

https://mydreamambitious.blog.csdn.net/article/details/125339604


2.高斯去噪

https://mydreamambitious.blog.csdn.net/article/details/125203273


3.腐蚀和膨胀

https://mydreamambitious.blog.csdn.net/article/details/125265431


4.cv2.inRange函数

作用:rgb颜色空间转换到hsv颜色空间,颜色去除白色背景部分
参数:
第一个参数:hsv指输入的原图;
第二个参数:lower_red指的是图像中低于这个lower_red的值,像素值变为0;
第三个参数:upper_red指的是图像中高于这个upper_red的值,像素值变为0;


5.cv2.minEnclosingCircle函数

函数作用:得到包含二维点集的最小圆
参数:
InputArray points:输入的二维点集;
Point2f& center:表示输出的圆形的中心坐标,是float型;
float& radius:输出的最小圆的半径,是float型;


6.cv2.moments函数

求轮廓的矩:
mu = cv.moments(contour) #contour是一个轮廓
cx = mu[‘m10’] / mu[‘m00’] #轮廓contour的质心的横坐标
cy = mu[‘m01’] / mu[‘m00’] #轮廓contour的质心的纵坐标

https://blog.csdn.net/Caesar6666/article/details/103257632


7.代码实战

import os
import cv2
import numpy as npcap=cv2.VideoCapture(0)
#设置RGB->HSV的低阈值和高阈值
Obj_low=np.array([0,0,0])
Obj_high=np.array([179,157,79])while cap.isOpened():OK,frame=cap.read()if OK==False:break#对图片进行翻转,Opencv读取的图片和我们正常的显示方式相反img=cv2.flip(src=frame,flipCode=2)img=cv2.resize(src=img,dsize=(600,600))#对图像进行高斯处理gauss=cv2.GaussianBlur(src=img,ksize=(3,3),sigmaX=0)#将图像转换为灰度图gray=cv2.cvtColor(src=gauss,code=cv2.COLOR_BGR2HSV)inrange=cv2.inRange(src=gray,lowerb=Obj_low,upperb=Obj_high)#对图像进行腐蚀kernel=cv2.getStructuringElement(shape=cv2.MORPH_RECT,ksize=(3,3))erode=cv2.erode(src=inrange,kernel=kernel,iterations=2)#对图形进行膨胀dilate=cv2.dilate(src=erode,kernel=kernel,iterations=2)#查找轮廓contours,hierarchy=cv2.findContours(image=dilate,mode=cv2.RETR_TREE,method=cv2.CHAIN_APPROX_SIMPLE)maxArea=0index=0length=len(contours)if length>0:for i in range(length):#计算轮廓的面积area=cv2.contourArea(contours[i])if area>maxArea:maxArea=areaindex=i#得到包含最小点集的圆((x,y),radius)=cv2.minEnclosingCircle(contours[index])M=cv2.moments(contours[index])center=(int(M['m10']/M['m00']),int(M['m01']/M['m00']))if radius>5:cv2.circle(img=img,center=center,radius=2,color=(0,255,0),thickness=-1)cv2.circle(img=img,center=center,radius=int(radius),color=(0,0,255),thickness=3)cv2.imshow('image',img)if cv2.waitKey(1)&0xFF==27:break
cv2.destroyAllWindows()if __name__ == '__main__':print('Pycharm')

Opencv实现对象跟踪相关推荐

  1. opencv实现对象跟踪_如何使用opencv跟踪对象的距离和角度

    opencv实现对象跟踪 介绍 (Introduction) Tracking the distance and angle of an object has many practical uses, ...

  2. OpenCV 实时对象跟踪(质心跟踪)

    本文章先介绍对象跟踪过程,考虑对象跟踪的特点决定使用:质心跟踪算法,然后会一步一步说明质心跟踪算法的实现:最后是如何用python代码实现. 实验效果如下: 对象跟踪过程 进行一组初始的对象检测(如: ...

  3. 使用 OpenCV 进行对象跟踪的几种算法解读

    使用 OpenCV 进行对象跟踪--算法 在本节中,我们将深入研究不同的跟踪算法.目标不是对每个跟踪器有深入的理论理解,而是从实践的角度理解它们. 让我首先解释跟踪背后的一些一般原则.在跟踪中,我们的 ...

  4. 目标跟踪(7)使用 OpenCV 进行简单的对象跟踪

    1.简述 目标跟踪的过程是: 1.获取对象检测的初始集(例如边界框坐标的输入集) 2.为每个初始检测创建唯一的ID 3.然后跟踪每一个在视频中移动的对象,保持唯一ID的分配 此外,对象跟踪允许我们为每 ...

  5. Java OpenCV 图像处理30 视频分析和对象跟踪 视频读取

    Java OpenCV 图像处理30 视频分析和对象跟踪 视频读取 Java OpenCV-4.0.0 图像处理 视频分析和对象跟踪 视频读取 package com.xu.opencv.video; ...

  6. Java OpenCV 图像处理32.4 视频分析和对象跟踪 切换背景

    Java OpenCV 图像处理32.4 视频分析和对象跟踪 切换背景 方法 含义 解释 bitwise_and "与"操作,即对图像(灰度图像或彩色图像均可)每个像素值进行二进制 ...

  7. OpenCV视频分析与对象跟踪实战教程-贾志刚-专题视频课程

    OpenCV视频分析与对象跟踪实战教程-1957人已学习 课程介绍         OpenCV视频分析与对象跟踪实战视频培训课程概况:基于OpenCV新版本3.2 从基本的OpenCV视频读写与摄像 ...

  8. OpenCV连续自适应跟踪算法CAMShift实现视频对象跟踪

    1.概述 案例:使用OpenCV的CAMShift算法实现视频中对象跟踪 算法API介绍: 本文福利,莬费领取Qt开发学习资料包.技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,Q ...

  9. OpenCV~对象跟踪

    本文将展示如何使用 OpenCV 中的一些基本功能来执行复杂的对象跟踪任务 OpenCV 是一个很好的处理图像和视频的工具.无论你是想让你的照片呈现 90 年代的黑白效果,还是执行复杂的数学运算,Op ...

最新文章

  1. 一次gitlab无法使用ssh登录的问题解决
  2. NeHe OpenGL教程 第二十三课:球面映射
  3. 安卓samba软件_Android Samba Client
  4. pandas用read_csv时编码问题解决
  5. Day 13: Dropwizard —— 非常棒的Java REST服务器栈
  6. 美团Android资源混淆保护实践
  7. 关于java中::语法的理解
  8. IntrospectorCleanupListener作用
  9. mysql 有两种数据库引擎发音
  10. 2018年11月12日
  11. P5708 【深基2.习2】三角形面积(python3实现)
  12. 怎么在c语言里输入数组元素,如何在不输入n的情况下输入数组中的元素? (C )...
  13. Guojiz网址导航系统PHP网站源码
  14. window命令行大全
  15. 不要在构造和析构函数中使用虚函数
  16. python中类方法、类实例方法、静态方法的使用与区别
  17. 疯狂Java讲义笔记汇总
  18. ws550 第三方固件_华为WS550路由器如何固件升级
  19. java流浪救助站公益志愿者管理系统
  20. oracle+alert删除日志,清除alert log

热门文章

  1. 一文图解前端WebSocket 实时通信
  2. python应用实例:坐标转换——基于布尔莎模型,可实现BJ54坐标系/GSC2000坐标系/WGS84等各种地心直角坐标系的转换
  3. N天学习一个Linux命令之top
  4. Mol Cell Proteomics. |彭建祥| 人胃肠道间质瘤亚群蛋白质组图谱
  5. 输出π值,小数点后保留6位有效数字。
  6. cf服务器不显示名字,cf服务器冠名之战 怎么给服务器取名字
  7. RenderControl获取控件输出的HTML
  8. 关于Stanza工具包的使用
  9. Excel如何创建员工姓名的空白表,以统计工资等
  10. java内存 海子_Java问题