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

在opencv OpenCV中打开相机摄像头,用分水岭算法实时实现图像的分割与提取

import cv2
import numpy as np# 定义回调函数
def callback(x):pass# 打开摄像头
cap = cv2.VideoCapture(0)# 创建窗口和控件
cv2.namedWindow('image')
cv2.createTrackbar('threshold', 'image', 0, 255, callback)# 初始化参数
bgdModel = np.zeros((1, 65), np.float64)
fgdModel = np.zeros((1, 65), np.float64)
rect = (0, 0, 1, 1)while True:# 获取当前帧ret, frame = cap.read()# 转换为灰度图像gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)# 获取阈值threshold = cv2.getTrackbarPos('threshold', 'image')# 进行前景和背景的分割mask = np.zeros(gray.shape, np.uint8)mask[gray >= threshold] = 1cv2.imshow('mask', mask)# 对分割后的图像进行分水岭处理markers = cv2.watershed(frame, mask)# 绘制分割结果frame[markers == -1] = [255, 0, 0]# 显示结果cv2.imshow('image', frame)# 按下ESC键退出程序if cv2.waitKey(1) == 27:break# 释放摄像头并关闭窗口
cap.release()
cv2.destroyAllWindows()

   cv2.VideoCapture()函数打开摄像头,然后创建一个新窗口并添加一个用于调整阈值的滑动条。在每一帧图像中,我们通过cv2.cvtColor()将其转换为灰度图像,然后根据阈值获取前景和背景的分割结果。接下来,我们将分割结果传递给cv2.watershed()函数进行分水岭处理,然后将分水岭处理后的分割结果绘制到原图像中。最后,我们使用cv2.imshow()显示结果,并在用户按下ESC键时退出程序。

http://www.lryc.cn/news/224665.html

相关文章:

  • CodeWhisperer 的正确使用
  • selenium xpath定位
  • 「我在淘天做技术」音视频技术及其在淘宝内容业务中的应用
  • el-input 输入后失去焦点
  • docker创建并访问本地前端
  • 数据结构之单链表基本操作
  • Python 实践
  • 使用easyui前端框架快速构建一个crud应用
  • Logback从添加依赖,到配置给中打印级别,archive相关信息配置,在项目中的常见的用法,一个完整的过程
  • 虚假内容检测,谣言检测,不实信息检测,事实核查;纯文本,多模态,多语言;数据集整理
  • 数据结构:单链表
  • 官媒代运营:让大众倾听品牌的声音
  • postgresql 实现计算日期间隔排除周末节假日方案
  • 金融工作怎么做?低代码如何助力金融行业
  • 基于springboot实现智慧外贸平台系统【项目源码+论文说明】计算机毕业设计
  • 带头+双向+循环链表
  • Leetcode_2:两数相加
  • Pytorch实战教程(一)-神经网络与模型训练
  • 【MySQL】手把手教你centos7下载MySQL
  • openlayers
  • 力扣每日一道系列 --- LeetCode 88. 合并两个有序数组
  • Android Studio(项目收获)
  • MQ写满的情况如何处理?
  • 点名(缺失的数字),剑指offer,力扣
  • 云安全—Dashboard 攻击面
  • FCOS难点记录
  • java通过FTP跨服务器动态监听读取指定目录下文件数据
  • 5G边缘计算网关的功能及作用
  • 阿里云AIGC小说生成【必得京东卡】
  • 数据结构之AVL树