基于opencv python 的网线线序识别(一)
更新2022.3.22
完整的代码已丢失,在对应的地方添加代码段
写在前面:
这个是我大学本科的课程设计,在做着这个题目之前我也只是会python,而opencv python没怎么用过,也就在本科阶段上过数字图像处理的课,所以水平很低,有写的不对的地方望轻喷。而且我在撸码时候也没找着有做这个网线线序识别的,就想着借此分享一下,希望对有需要的同学有所帮助吧。
一、设计目标
网线内部是有八条独立的有颜色的线,分别为白绿、绿、橙、白橙、棕、白棕、蓝、白蓝,就是有四条纯色的线和四条白线稍微掺杂着其他四种颜色的线。识别的目标就是实时采集视频帧,识别出八条线,并在原图标上序号,由于有很多种线序规格,做的时候采用的是T568B的排线顺序:白橙、橙、白绿、蓝、白蓝、绿、白褐、褐
当时做的时候遇到有两个难点,列举一下,后面会有相应的解决方案
- 如何分离如白橙与橙色的线
- 由于采用的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 的网线线序识别(一)相关推荐
- 基于 OpenCV + Python 的人脸识别上课签到系统
目录 前言 安装第三方库 第一步:采集人脸图像 (1)修改姓名学号 (2)运行capture_face.py (3)采集人脸图像 (4)查看采集到的人脸图像 第二步:训练模型 第三步:识别签到 (1) ...
- 基于OpenCV的实时车道线分割&车道保持系统(源码&教程)
1.研究背景 汽车主动安全系统能够实现风险的主动预防和规避,其能有力缓解当前我国汽车交通事故频发的困境,故对其的相关研究得到了国家的大力支持. 车道保持辅助系统(LKAS,Lane Keeping A ...
- 【毕业设计_课程设计】基于opencv、dilb的员工人脸识别考勤系统
文章目录 0 项目说明 1 需求分析 2 总体设计 3 详细设计 4 效果展示 5 实验心得 6 项目源码 7 最后 0 项目说明 基于opencv.dilb的员工人脸识别考勤系统 提示:适合用于课程 ...
- 基于opencv tensorflow2.0开发的人脸识别锁定与解锁win10屏幕实战
基于opencv tensorflow2.0开发的人脸识别锁定与解锁win10屏幕实战 基于opencv tensorflow2.0开发的人脸识别锁定与解锁win10屏幕 前言 运行python环境 ...
- 基于Opencv的开源的中文车牌识别系统
真正的大师,永远都怀着一颗学徒的心! 一.项目简介 基于Opencv的开源的中文车牌识别系统. 二.实现功能 车牌定位 车牌判断 车牌监测 字符分割 字符鉴别 字符识别 车牌识别 车牌抽象 训练车牌识 ...
- 基于OpenCV的 SVM算法实现数字识别(四)---代码实现
三.基于SVM算法实现手写数字识别 作为一个工科生,而非数学专业的学生,我们研究一个算法,是要将它用于实际领域的.下面给出基于OpenCV3.0的SVM算法手写数字识别程序源码(参考http://bl ...
- 学习Opencv+Python之银行卡卡号识别
学习Opencv+Python之银行卡卡号识别 思路: 获取模板轮廓 获取模板中每个数字的轮廓 获取银行卡卡号轮廓 分别提取卡号中的每个数字的轮廓 对比识别 代码: # 导入工具包 from imut ...
- 网线线序排列以及八字口诀
普通网线线序一般都是按照橙白.橙.绿白.蓝.蓝白.绿.棕白.棕这个顺序排列的,也就是568B线序标准.而通常情况下百兆网络自用到其中的四根线,若是只有四根线的,则任选四根,做线时对应水晶头的1.2.3 ...
- 网口压线顺序_网线线序排列以及八字口诀
网线线序排列以及八字口诀 普通网线线序一般都是按照橙白.橙.绿白.蓝.蓝白.绿.棕白.棕这个顺序排列 的,也就是 568B 线序标准.而通常情况下百兆网络自用到其中的四根线,若是只有四根线 的,则任选 ...
- opencv 训练人脸对比_【项目案例python与人脸识别】基于OpenCV开源计算机视觉库的人脸识别之python实现...
" 本项目是一个基于OpenCV开源库使用python语言程序实现人脸检测的项目,该项目将从[项目基础知识](即人脸识别的基本原理).[项目实践](人脸识别所需要的具体步骤及其python程 ...
最新文章
- 总结 | 深度学习损失函数大全
- Control~Kalman filter
- Linux 精准获取进程pid--转
- Ubuntu16.04 ROS 深度学习_传智播客 智能机器人软件开发 学习路线图出炉!首发优惠!!...
- 多线程与高并发(九):单机压测工具JMH,单机最快MQ - Disruptor原理解析
- CocoaPods安装及使用
- Reflect Refract (以水渲染为例)
- 【CF1107G】Vasya and Maximum Profit(单调栈/单调栈+线段树最大子段和)
- 【转】MapGISnbsp;K9基础系…
- laravel 30分站搭建迷你博客
- 编写程序,创建类Mymath,计算圆的周长和面积以及球的表面积和体积,并编写测试代码,结果均保留两位小数。
- 几个好用的扩展程序,谷歌和火狐的
- S参数模型和 IBIS模型入门
- 记小辉人生中的第一刀
- java枚举类型及枚举集合
- Pixel修改kernel内核调试
- java bytebuffer分包收集,Java ByteBuffer rewind()用法及代码示例
- nginx:[emerg]open()“/var/log/nginx/host-8011. acce.log” failed (2:No such file or directory)
- Java继承和多态——子类继承性
- 用scrapy写爬虫 显示 Filtered offsite request to 错误.