当前位置: 首页 > news >正文

德阳市建设局网站地址企业关键词排名优化哪家好

德阳市建设局网站地址,企业关键词排名优化哪家好,荆州网站建设,没有网站想做个链接页面怎么做文章目录一、项目思路二、算法详解2.1、计算两个数组或数组与标量之间的每个元素的绝对差。2.2、轮廓检测 绘制物体轮廓 绘制矩阵轮廓2.3、连续窗口显示2.4、读取视频,显示视频,保存视频三、项目实战:实时动态目标检测实时动态目标检测一、…

文章目录

  • 一、项目思路
  • 二、算法详解
    • 2.1、计算两个数组或数组与标量之间的每个元素的绝对差。
    • 2.2、轮廓检测 + 绘制物体轮廓 + 绘制矩阵轮廓
    • 2.3、连续窗口显示
    • 2.4、读取视频,显示视频,保存视频
  • 三、项目实战:实时动态目标检测

实时动态目标检测

一、项目思路

1、获取视频、读取帧图像
2、计算连续两张图像的像素绝对差获取动态目标
3、图像预处理:灰度图、高斯模糊、二值化、膨胀
4、轮廓检测、绘制矩阵轮廓、绘制物体轮廓
5、分别实时显示矩阵轮廓、物体轮廓

python进阶——人工智能实时目标跟踪

二、算法详解

2.1、计算两个数组或数组与标量之间的每个元素的绝对差。

函数说明:cv2.absdiff(src1, src2)
输入参数:src1:第一个输入数组或标量src2:第二个输入数组或标量

2.2、轮廓检测 + 绘制物体轮廓 + 绘制矩阵轮廓

######################################################################
# (1)轮廓检测:contours, hierarchy = cv2.findContours(img, mode, method)
# 输入参数      mode: 轮廓检索模式
#                   (1)RETR_EXTERNAL:  只检索最外面的轮廓;
#                   (2)RETR_LIST:      检索所有的轮廓,但检测的轮廓不建立等级关系,将其保存到一条链表当中,
#                   (3)RETR_CCOMP:     检索所有的轮廓,并建立两个等级的轮廓。顶层是各部分的外部边界,内层是的边界信息;
#                   (4)RETR_TREE:      检索所有的轮廓,并建立一个等级树结构的轮廓;(最常用)
#               method: 轮廓逼近方法
#                   (1)CHAIN_APPROX_NONE:      存储所有的轮廓点,相邻的两个点的像素位置差不超过1。               例如:矩阵的四条边。(最常用)
#                   (2)CHAIN_APPROX_SIMPLE:     压缩水平方向,垂直方向,对角线方向的元素,只保留该方向的终点坐标。   例如:矩形的4个轮廓点。
# 输出参数      contours:所有的轮廓
#               hierarchy:每条轮廓对应的属性
# 备注0:轮廓就是将连续的点(连着边界)连在一起的曲线,具有相同的颜色或者灰度。轮廓在形状分析和物体的检测和识别中很有用。
# 备注1:函数输入图像是二值图,即黑白的(不是灰度图)。所以读取的图像要先转成灰度的,再转成二值图。
# 备注2:函数在opencv2只返回两个值:contours, hierarchy。
# 备注3:函数在opencv3会返回三个值:img, countours, hierarchy
######################################################################
# (2)绘制轮廓:v2.drawContours(image, contours, contourIdx, color, thickness) ———— (在图像上)画出图像的轮廓
# 输入参数        image:              需要绘制轮廓的目标图像,注意会改变原图
#                 contours:           轮廓点,上述函数cv2.findContours()的第一个返回值
#                 contourIdx:         轮廓的索引,表示绘制第几个轮廓。-1表示绘制所有的轮廓
#                 color:              绘制轮廓的颜色(RGB)
#                 thickness:          (可选参数)轮廓线的宽度,-1表示填充
# 备注:图像需要先复制一份copy(), 否则(赋值操作的图像)与原图会随之一起改变。
######################################################################
# (3)绘制矩形边框:cv2.rectangle(img, (x, y), (x+w, y+h), color, thickness)
#       (x, y):         矩形定点
#       (x+w, y+h):     矩形的宽高
#       color:      	 矩形的边框颜色(0, 255, 0)
#       thickness:      矩形边框宽度
######################################################################

2.3、连续窗口显示

# 显示图像:cv2.imshow(window_title, img)
# 输入参数		window_title:		自定义窗口的名字
#     			img:				待显示图像
# 备注1:窗口会自适应图像大小
# 备注2:指定多个窗口名称,可以显示多幅图像
# 备注3:显示多幅图像的时候,若cv2.imshow()指定相同的窗口名,这样后面显示的图像会覆盖前面的图像,从而只产生一个(连续)窗口。

2.4、读取视频,显示视频,保存视频

OpenCV—读取视频,显示视频,保存视频


三、项目实战:实时动态目标检测

在这里插入图片描述

import cv2# (1)参数设置
Pixel_points = 500  # 像素点数(只检测大于该值的目标,小于该值的目标自动忽略)
video_path = r'C:\Users\my\Videos\car.mov'  # 视频存放地址(路径中不能有中文,将导致读取失败。)if __name__ == '__main__':# (2)读取视频cap = cv2.VideoCapture(video_path)      # 读取视频流_, frame1 = cap.read()                  # 读取第一帧_, frame2 = cap.read()                  # 读取第二帧while cap.isOpened():  # 检测视频是否可以打开# (3)图像预处理diff = cv2.absdiff(frame1, frame2)                              # 计算两张图像之间的每个像素的绝对差gray = cv2.cvtColor(diff, cv2.COLOR_BGR2GRAY)                   # 灰度图blur = cv2.GaussianBlur(gray, (5, 5), 0)                        # 高斯滤波_, thresh = cv2.threshold(blur, 20, 255, cv2.THRESH_BINARY)     # 二值化mask = cv2.dilate(thresh, None, iterations=3)                   # 膨胀操作contours, _ = cv2.findContours(mask, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)  # 轮廓检测# (4)轮廓检测for contour in contours:(x, y, w, h) = cv2.boundingRect(contour)        # 获取矩阵轮廓的宽和高if cv2.contourArea(contour) < Pixel_points:     # 判断检测得到的矩形轮廓,体积是否满足大小设置continuecv2.rectangle(frame1, pt1=(int(x), int(y)), pt2=(int(x) + int(w), int(y) + int(h)), color=(0, 0, 255), thickness=10)      # 绘制矩形轮廓# cv2.drawContours(frame1, contours, -1, (0, 255, 0), 2)															# 绘制物体轮廓# (5)绘图cv2.imshow('frame', frame1)         # 实时显示轮廓图Frame# cv2.imshow('mask', mask)			# 实时显示掩膜图MASKframe1 = frame2                     # 保存当前帧(循环-计算最近的两帧图像的像素差)ret, frame2 = cap.read()            # 读取下一帧(循环-计算最近的两帧图像的像素差)# (6)如果读到的帧数不为空,则继续读取;如果为空,则退出。if frame2 is None:break# (7)使用 waitKey 可以控制视频的播放速度。数值越小,播放速度越快。if cv2.waitKey(50) == ord(' '):  # ord(' '): 按空格结束breakcap.release()            # 释放摄像头cv2.destroyAllWindows()  # 摧毁所有图窗
http://www.zhongyajixie.com/news/24981.html

相关文章:

  • 如何开设一个网站东莞百度推广排名优化
  • 网站建站助手太原关键词优化报价
  • 网站建设哪些好不受国内限制的浏览器下载
  • 井陉矿区网站建设网推怎么做
  • 购物网站制作实例深圳平台推广
  • java网站开发优缺点网络推广包括哪些
  • iis打开网站变成下载域名注册需要多久
  • 系统开发与网站开发网页制作的步骤
  • PHP网站开发涉及的工具有哪些网站备案查询官网
  • 腾讯云 建网站seo刷关键词排名优化
  • 家居公司网站建设方案ppt西安高端模板建站
  • 怎么制作页面长沙seo优化公司
  • 厦门的网站建设公司亿驱动力竞价托管
  • 网站运营的思路图片搜索
  • 手机上如何建立wordpressseol英文啥意思
  • 全屏网站制作注册域名的步骤
  • 做微信网站怎么推广一个平台
  • 自己电脑做网站还用备案现在百度推广有用吗
  • 企业新品做众筹的美国网站手机制作网站app
  • 手机网站建好怎么发布培训如何优化网站
  • 杭州网站建设哪里好百度助手app下载
  • 创建平台网站下载软件seo外链自动群发工具
  • 西电信息化建设网站万能识图
  • 好用的crm系统有哪些南京搜索引擎推广优化
  • seo做的不好的网站有哪些今日头条新闻消息
  • 网页网站动作效果做的比较棒seo技术助理
  • 桦甸市城乡建设局网站搜索引擎优化原理
  • 个人网站做贷款广告信阳百度推广公司电话
  • wordpress 自定义首页seo用什么论坛引流
  • 天津网站建设zhy88网络营销模式有哪些?