更新2022.3.22

完整的代码已丢失,在对应的地方添加代码段

写在前面:

这个是我大学本科的课程设计,在做着这个题目之前我也只是会python,而opencv python没怎么用过,也就在本科阶段上过数字图像处理的课,所以水平很低,有写的不对的地方望轻喷。而且我在撸码时候也没找着有做这个网线线序识别的,就想着借此分享一下,希望对有需要的同学有所帮助吧。

一、设计目标

网线内部是有八条独立的有颜色的线,分别为白绿、绿、橙、白橙、棕、白棕、蓝、白蓝,就是有四条纯色的线和四条白线稍微掺杂着其他四种颜色的线。识别的目标就是实时采集视频帧,识别出八条线,并在原图标上序号,由于有很多种线序规格,做的时候采用的是T568B的排线顺序:白橙、橙、白绿、蓝、白蓝、绿、白褐、褐

当时做的时候遇到有两个难点,列举一下,后面会有相应的解决方案

  1. 如何分离如白橙与橙色的线
  2. 由于采用的HSV色域,橙色和棕色的H分量基本是一致的,如何准确分离出橙色和棕色

二、设计原理

调用摄像头实时采集视频帧,通过对图像的预处理、二值化后识别出八条网线的轮廓,再将图像的色域从RGB转到HSV色域内,对网线轮廓内的像素点的HSV分量进行区分统计最终识别出以下顺序:白橙、橙、白绿、蓝、白蓝、绿、白褐、褐

三、整体设计

3.1 平台搭建

由于八条线内有四条是白色掺杂一点其他颜色,固采用黑色背景,便于二值化处理,且由于采用了HSV色域,对光照敏感,固制作了了一个暗盒,控制光照的因素,并加装一条led灯带为暗盒提供光源。由于盒中视野会有盒壁,影响识别,固通过选择视野中央的一块矩形区域作为ROI区用于视觉识别(这个ROI区是写死的图像中央的区域)

平台外观与暗盒内部:

暗盒内的视野:

class MyCamera:def __init__(self, cameraNum):self.cap = cv.VideoCapture(cameraNum)self.height = 360self.weight = 640def read(self):iret, frame = self.cap.read()src = frame[60:420, :]if (iret != True):raise Exception("camera fail")return srcdef release(self):self.cap.release()cv.destroyAllWindows()

3.2 算法整体框图

基于opencv python 的网线线序识别(一)相关推荐

  1. 基于 OpenCV + Python 的人脸识别上课签到系统

    目录 前言 安装第三方库 第一步:采集人脸图像 (1)修改姓名学号 (2)运行capture_face.py (3)采集人脸图像 (4)查看采集到的人脸图像 第二步:训练模型 第三步:识别签到 (1) ...

  2. 基于OpenCV的实时车道线分割&车道保持系统(源码&教程)

    1.研究背景 汽车主动安全系统能够实现风险的主动预防和规避,其能有力缓解当前我国汽车交通事故频发的困境,故对其的相关研究得到了国家的大力支持. 车道保持辅助系统(LKAS,Lane Keeping A ...

  3. 【毕业设计_课程设计】基于opencv、dilb的员工人脸识别考勤系统

    文章目录 0 项目说明 1 需求分析 2 总体设计 3 详细设计 4 效果展示 5 实验心得 6 项目源码 7 最后 0 项目说明 基于opencv.dilb的员工人脸识别考勤系统 提示:适合用于课程 ...

  4. 基于opencv tensorflow2.0开发的人脸识别锁定与解锁win10屏幕实战

    基于opencv tensorflow2.0开发的人脸识别锁定与解锁win10屏幕实战 基于opencv tensorflow2.0开发的人脸识别锁定与解锁win10屏幕 前言 运行python环境 ...

  5. 基于Opencv的开源的中文车牌识别系统

    真正的大师,永远都怀着一颗学徒的心! 一.项目简介 基于Opencv的开源的中文车牌识别系统. 二.实现功能 车牌定位 车牌判断 车牌监测 字符分割 字符鉴别 字符识别 车牌识别 车牌抽象 训练车牌识 ...

  6. 基于OpenCV的 SVM算法实现数字识别(四)---代码实现

    三.基于SVM算法实现手写数字识别 作为一个工科生,而非数学专业的学生,我们研究一个算法,是要将它用于实际领域的.下面给出基于OpenCV3.0的SVM算法手写数字识别程序源码(参考http://bl ...

  7. 学习Opencv+Python之银行卡卡号识别

    学习Opencv+Python之银行卡卡号识别 思路: 获取模板轮廓 获取模板中每个数字的轮廓 获取银行卡卡号轮廓 分别提取卡号中的每个数字的轮廓 对比识别 代码: # 导入工具包 from imut ...

  8. 网线线序排列以及八字口诀

    普通网线线序一般都是按照橙白.橙.绿白.蓝.蓝白.绿.棕白.棕这个顺序排列的,也就是568B线序标准.而通常情况下百兆网络自用到其中的四根线,若是只有四根线的,则任选四根,做线时对应水晶头的1.2.3 ...

  9. 网口压线顺序_网线线序排列以及八字口诀

    网线线序排列以及八字口诀 普通网线线序一般都是按照橙白.橙.绿白.蓝.蓝白.绿.棕白.棕这个顺序排列 的,也就是 568B 线序标准.而通常情况下百兆网络自用到其中的四根线,若是只有四根线 的,则任选 ...

  10. opencv 训练人脸对比_【项目案例python与人脸识别】基于OpenCV开源计算机视觉库的人脸识别之python实现...

    " 本项目是一个基于OpenCV开源库使用python语言程序实现人脸检测的项目,该项目将从[项目基础知识](即人脸识别的基本原理).[项目实践](人脸识别所需要的具体步骤及其python程 ...

最新文章

  1. 总结 | 深度学习损失函数大全
  2. Control~Kalman filter
  3. Linux 精准获取进程pid--转
  4. Ubuntu16.04 ROS 深度学习_传智播客 智能机器人软件开发 学习路线图出炉!首发优惠!!...
  5. 多线程与高并发(九):单机压测工具JMH,单机最快MQ - Disruptor原理解析
  6. CocoaPods安装及使用
  7. Reflect Refract (以水渲染为例)
  8. 【CF1107G】Vasya and Maximum Profit(单调栈/单调栈+线段树最大子段和)
  9. 【转】MapGISnbsp;K9基础系…
  10. laravel 30分站搭建迷你博客
  11. 编写程序,创建类Mymath,计算圆的周长和面积以及球的表面积和体积,并编写测试代码,结果均保留两位小数。
  12. 几个好用的扩展程序,谷歌和火狐的
  13. S参数模型和 IBIS模型入门
  14. 记小辉人生中的第一刀
  15. java枚举类型及枚举集合
  16. Pixel修改kernel内核调试
  17. java bytebuffer分包收集,Java ByteBuffer rewind()用法及代码示例
  18. nginx:[emerg]open()“/var/log/nginx/host-8011. acce.log” failed (2:No such file or directory)
  19. Java继承和多态——子类继承性
  20. 用scrapy写爬虫 显示 Filtered offsite request to 错误.

热门文章

  1. MySQL中rank函数的使用
  2. rails中关于carrierwave、kaminari、roo组件分享
  3. kali linux2.0输入法,kali2.0 设置输入法 找了好久,亲测有效
  4. java程序员昵称_那些神秘的Java程序员
  5. 腾讯校园招聘--一面(技术1对1)面经
  6. mysql 备份 access_备份access数据库
  7. 群发邮件软件和邮件群发工具哪个好?如何群发邮件不进入垃圾箱
  8. 在线教育项目(六)之讲师功能实现
  9. WIN10下Apache启动失败
  10. 敲笨钟 分数 20作者 陈越单位 浙江大学