基于opencv python 的网线线序识别(一)
更新2022.3.22
完整的代碼已丟失,在對(duì)應(yīng)的地方添加代碼段
寫(xiě)在前面:
這個(gè)是我大學(xué)本科的課程設(shè)計(jì),在做著這個(gè)題目之前我也只是會(huì)python,而opencv python沒(méi)怎么用過(guò),也就在本科階段上過(guò)數(shù)字圖像處理的課,所以水平很低,有寫(xiě)的不對(duì)的地方望輕噴。而且我在擼碼時(shí)候也沒(méi)找著有做這個(gè)網(wǎng)線線序識(shí)別的,就想著借此分享一下,希望對(duì)有需要的同學(xué)有所幫助吧。
一、設(shè)計(jì)目標(biāo)
網(wǎng)線內(nèi)部是有八條獨(dú)立的有顏色的線,分別為白綠、綠、橙、白橙、棕、白棕、藍(lán)、白藍(lán),就是有四條純色的線和四條白線稍微摻雜著其他四種顏色的線。識(shí)別的目標(biāo)就是實(shí)時(shí)采集視頻幀,識(shí)別出八條線,并在原圖標(biāo)上序號(hào),由于有很多種線序規(guī)格,做的時(shí)候采用的是T568B的排線順序:白橙、橙、白綠、藍(lán)、白藍(lán)、綠、白褐、褐
當(dāng)時(shí)做的時(shí)候遇到有兩個(gè)難點(diǎn),列舉一下,后面會(huì)有相應(yīng)的解決方案
二、設(shè)計(jì)原理
調(diào)用攝像頭實(shí)時(shí)采集視頻幀,通過(guò)對(duì)圖像的預(yù)處理、二值化后識(shí)別出八條網(wǎng)線的輪廓,再將圖像的色域從RGB轉(zhuǎn)到HSV色域內(nèi),對(duì)網(wǎng)線輪廓內(nèi)的像素點(diǎn)的HSV分量進(jìn)行區(qū)分統(tǒng)計(jì)最終識(shí)別出以下順序:白橙、橙、白綠、藍(lán)、白藍(lán)、綠、白褐、褐
三、整體設(shè)計(jì)
3.1 平臺(tái)搭建
由于八條線內(nèi)有四條是白色摻雜一點(diǎn)其他顏色,固采用黑色背景,便于二值化處理,且由于采用了HSV色域,對(duì)光照敏感,固制作了了一個(gè)暗盒,控制光照的因素,并加裝一條led燈帶為暗盒提供光源。由于盒中視野會(huì)有盒壁,影響識(shí)別,固通過(guò)選擇視野中央的一塊矩形區(qū)域作為ROI區(qū)用于視覺(jué)識(shí)別(這個(gè)ROI區(qū)是寫(xiě)死的圖像中央的區(qū)域)
平臺(tái)外觀與暗盒內(nèi)部:
暗盒內(nèi)的視野:
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 算法整體框圖
總結(jié)
以上是生活随笔為你收集整理的基于opencv python 的网线线序识别(一)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: linux之修改静态ip,修改网卡名称为
- 下一篇: 用python画数学函数图像教程_你知道