码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 在opencv OpenCV中打开相机摄像头,用分水岭算法实时实现图像的分割与提取


    1. import cv2
    2. import numpy as np
    3. # 定义回调函数
    4. def callback(x):
    5. pass
    6. # 打开摄像头
    7. cap = cv2.VideoCapture(0)
    8. # 创建窗口和控件
    9. cv2.namedWindow('image')
    10. cv2.createTrackbar('threshold', 'image', 0, 255, callback)
    11. # 初始化参数
    12. bgdModel = np.zeros((1, 65), np.float64)
    13. fgdModel = np.zeros((1, 65), np.float64)
    14. rect = (0, 0, 1, 1)
    15. while True:
    16. # 获取当前帧
    17. ret, frame = cap.read()
    18. # 转换为灰度图像
    19. gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    20. # 获取阈值
    21. threshold = cv2.getTrackbarPos('threshold', 'image')
    22. # 进行前景和背景的分割
    23. mask = np.zeros(gray.shape, np.uint8)
    24. mask[gray >= threshold] = 1
    25. cv2.imshow('mask', mask)
    26. # 对分割后的图像进行分水岭处理
    27. markers = cv2.watershed(frame, mask)
    28. # 绘制分割结果
    29. frame[markers == -1] = [255, 0, 0]
    30. # 显示结果
    31. cv2.imshow('image', frame)
    32. # 按下ESC键退出程序
    33. if cv2.waitKey(1) == 27:
    34. break
    35. # 释放摄像头并关闭窗口
    36. cap.release()
    37. cv2.destroyAllWindows()

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

  • 相关阅读:
    iwebsec靶场 SQL注入漏洞通关笔记1- 数字型注入
    cube开源一站式云原生机器学习平台--volcano 多机分布式计算
    C++ 20 协程(三)
    MySQL【单行函数】
    设计模式【java提高】
    k8s使用nfs配置StorageClass,配置完成后,创建pvc一直为pending的状态。
    有哪些好用的程序员接私活平台?
    MultipartFile是什么
    GTK构件之杂项构件(2)
    乘风破浪,遇见最佳跨平台跨终端框架.Net Core/.Net生态 - 官方扩展集锦(Microsoft.Extensions on Nuget)
  • 原文地址:https://blog.csdn.net/SYC20110120/article/details/134318251
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号