国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

備賽筆記:Opencv學習:顏色識別

這篇具有很好參考價值的文章主要介紹了備賽筆記:Opencv學習:顏色識別。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

OpenCV顏色識別一般要以下步驟:
1 顏色空間轉(zhuǎn)換,將BGR轉(zhuǎn)換為HSV,用色調(diào)區(qū)分顏色
2 按照閾值濾出所識別的顏色
3 消除噪點,平滑邊界
3 提取連續(xù)域,提取要識別的顏色

1 HSV
H:色調(diào),用角度度量,范圍0°到360°,從紅色開始逆時針方向計算。紅色為0°,紅綠藍間隔120°,互補色差180°。
S:飽和度,范圍0到1,代表光譜色占顏色比例。0時顏色只有灰度,1時顏色為純光譜色
V:明度,范圍0到1,代表顏色明亮程度。0為黑色,1為白色
備賽筆記:Opencv學習:顏色識別
備賽筆記:Opencv學習:顏色識別

腐蝕(erosion)和膨脹(dilation)
腐蝕和膨脹作用:
1 消除噪聲
2 分割獨立圖像元素
3 尋找極大值或極小值區(qū)域
膨脹:
將圖像和任意尋找內(nèi)涵進行卷積,提取覆蓋區(qū)域的最大像素值。這一操作會使亮區(qū)擴展
腐蝕:
和膨脹正好相反,提取覆蓋區(qū)域最下像素值1,這一操作讓亮區(qū)變細,暗區(qū)變大

提取連通域:
兩種像素鄰接關系會構(gòu)成連通域:4鄰接(上下左右),和8鄰接(包括對角線)
備賽筆記:Opencv學習:顏色識別
opencv里尋找連通域函數(shù)findContours()

·語法格式:
image,contours,hierarchy = cv2.findContours(image,mode,method)
式中返回值為:
·image: 與函數(shù)參數(shù)中的原始圖像image一致。
·contours: 返回的輪廓。
·hierarchy: 圖像的拓撲信息(輪廓層次)。
式中參數(shù)為:
·mode: 輪廓檢索模式。
·method: 輪廓的近似方法。
參數(shù)mode:

cv2.RETR_EXTERNAL 只檢測外輪廓

cv2.RETR_LIST檢測的輪廓不建立等級關系

cv2.RETR_CCOMP建立兩個等級的輪廓

cv2.RETR_TREE建立一個等級樹結(jié)構(gòu)的輪廓

參數(shù)method:

cv2.CHAIN_APPROX_NONE存儲所有的輪廓點

cv2.CHAIN_APPROX_SIMPLE壓縮水平方向,垂直方向,對角線方向的元素,只保留該方向的終點坐標,例如一個矩形輪廓只需4個點來保存輪廓信息

(具體算法實現(xiàn)可以去了解union-find算法)

顏色識別程序?qū)崿F(xiàn)

import cv2
import numpy as np

cap = cv2.VideoCapture(0)
red_min = np.array([0, 128, 46])
red_max = np.array([5, 255, 255])
red2_min = np.array([156, 128, 46])
red2_max = np.array([180, 255, 255])
yellow_min = np.array([15, 128, 46])
yellow_max = np.array([50, 255, 255])

while True:
    ret,frame = cap.read()
    x,y = frame.shape[0:2]
    small_frame = cv2.resize(frame, (int(y / 2), int(x / 2)))
    cv2.imshow('small', small_frame)
    
    src = small_frame.copy()
    res = src.copy()
    hsv = cv2.cvtColor(src, cv2.COLOR_BGR2HSV)
    mask_red1 = cv2.inRange(hsv, red_min, red_max)
    mask_red2 = cv2.inRange(hsv, red2_min, red2_max)
    mask_yellow = cv2.inRange(hsv, yellow_min, yellow_max)
    mask = cv2.bitwise_or(mask_red1, mask_red2)
    mask = cv2.bitwise_or(mask, mask_yellow)
    res = cv2.bitwise_and(src, src, mask=mask)
    h, w = res.shape[:2]
    blured = cv2.blur(res, (5, 5))
    ret, bright = cv2.threshold(blured, 10, 255, cv2.THRESH_BINARY)
    gray = cv2.cvtColor(bright, cv2.COLOR_BGR2GRAY)
    kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (5, 5))
    opened = cv2.morphologyEx(gray, cv2.MORPH_CLOSE, kernel)
    closed = cv2.morphologyEx(opened, cv2.MORPH_CLOSE, kernel)
    contours, hierarchy = cv2.findContours(closed, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
    cv2.drawContours(src, contours, -1, (255, 0, 0), 2)
    cv2.imsow("result", src)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
cap.release()
cv2.destroyAllWindows()

1 red_min = np.array([0, 128, 46])
red_max = np.array([5, 255, 255])
red2_min = np.array([156, 128, 46])
red2_max = np.array([180, 255, 255])
yellow_min = np.array([15, 128, 46])
yellow_max = np.array([50, 255, 255])
我們要識別兩種紅色和一種黃色。這里列出它們的閾值上下限作為圖像二值化的取值范圍

2 hsv = cv2.cvtColor(src, cv2.COLOR_BGR2HSV)
把圖像轉(zhuǎn)化為hsv類型

3 mask_red1 = cv2.inRange(hsv, red_min, red_max)
mask_red2 = cv2.inRange(hsv, red2_min, red2_max)
mask_yellow = cv2.inRange(hsv, yellow_min, yellow_max)
mask = cv2.bitwise_or(mask_red1, mask_red2)
mask = cv2.bitwise_or(mask, mask_yellow)
res = cv2.bitwise_and(src, src, mask=mask)
圖像二值化,提取滿足閾值范圍的像素
cv2.inRange(圖像,閾值下限,閾值上限):將閾值范圍內(nèi)像素設為255,閾值之外像素設為0
cv2.bitwise_or(圖像1,圖像2):圖像或運算實現(xiàn)疊加
cv2.bitwise_and(圖像1,圖像2):圖像與運算實現(xiàn)疊加

4 kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (5, 5))
opened = cv2.morphologyEx(gray, cv2.MORPH_CLOSE, kernel)
closed = cv2.morphologyEx(opened, cv2.MORPH_CLOSE, kernel)
提取連續(xù)開閉區(qū)間用于降噪:

kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (5, 5))
設置卷積核,第一個參數(shù)代表卷積核形狀,有MORPH_RECT(矩形),MORPH_ELLIPSE(橢圓),MORPH_CROSS(十字形),第二個參數(shù)代表卷積核行和列

cv2.morphologyEx(要處理圖像,處理方式,卷積核)
opened = cv2.morphologyEx(gray, cv2.MORPH_CLOSE, kernel)
開運算,先腐蝕后膨脹,可以消除小黑點,平滑邊界。

closed = cv2.morphologyEx(opened, cv2.MORPH_CLOSE, kernel)
閉運算,先膨脹后腐蝕,可以消除小黑洞

5 contours, hierarchy = cv2.findContours(closed, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
cv2.drawContours(src, contours, -1, (255, 0, 0), 2)
提取連續(xù)域,得到區(qū)間文章來源地址http://www.zghlxwxcb.cn/news/detail-446089.html

到了這里,關于備賽筆記:Opencv學習:顏色識別的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 計算機設計大賽 深度學習YOLOv5車輛顏色識別檢測 - python opencv

    計算機設計大賽 深度學習YOLOv5車輛顏色識別檢測 - python opencv

    ?? 優(yōu)質(zhì)競賽項目系列,今天要分享的是 ?? **基于深度學習YOLOv5車輛顏色識別檢測 ** 該項目較為新穎,適合作為競賽課題方向,學長非常推薦! ??學長這里給一個題目綜合評分(每項滿分5分) 難度系數(shù):3分 工作量:3分 創(chuàng)新點:4分 ?? 更多資料, 項目分享: https://gitee.com

    2024年02月19日
    瀏覽(174)
  • OpenCV顏色識別(所有顏色均可識別)

    OpenCV顏色識別(所有顏色均可識別)

    歡迎訪問我的博客sakuraの繪梨衣 本文中的顏色識別為紅色,顏色閾值設置如下: 識別其他顏色可以參考HSV顏色閾值設置進行更改 下面是識別代碼,注釋很詳細: 下面是識別效果:

    2024年02月12日
    瀏覽(16)
  • 【Opencv小項目 1】Opencv實現(xiàn)簡單顏色識別

    【Opencv小項目 1】Opencv實現(xiàn)簡單顏色識別

    Opencv簡單顏色識別 Youtube教學視頻 BGR HSV顏色模型 一、 BGR 和 HSV 顏色模型 BGR Model BGR模型表示三種顏色通道:紅、綠、藍,采用BGR模型的圖像的顏色就是由紅綠藍三種顏色加權和混合而成。 此類模型的缺點顯而易見,就是很難去表達一種顏色。比如你修改了如下BGR中的B值,間

    2024年02月09日
    瀏覽(23)
  • opencv——顏色識別

    opencv——顏色識別

    這段時間一直在弄有關機器視覺識別的問題,在比賽中用到了很多關于顏色識別的視覺算法,感覺在開始工作之前還是需要先復習一下顏色識別的相關知識,幫助自己擴展一下優(yōu)化算法的思維。 一個關于HSV相關應用的文章 顧名思義,就是使用攝像頭實時識別出畫面對應的顏

    2024年02月09日
    瀏覽(12)
  • opencv顏色識別

    opencv顏色識別

    ? opencv中的顏色識別模塊能夠?qū)D像中的顏色進行識別,并且在識別結(jié)果中能夠顯示出具體的顏色。目前 opencv中有以下幾種顏色識別方法: 1、直方圖均衡化 1、直方圖均衡化 直方圖均衡化是指將圖像的灰度數(shù)據(jù)轉(zhuǎn)換為一個灰度級排列,并通過計算對數(shù)變換,將原圖像的灰度

    2024年02月03日
    瀏覽(13)
  • Qt-OpenCV學習筆記--人臉識別

    Qt-OpenCV學習筆記--人臉識別

    本人從事機械設計12年,業(yè)余時間自學編程。 2022年4月6日,開始學習C#, 2022年9月7日,開始學習c++和Qt, 2022年10月28日,開始學習OpenCV, 今天終于搞定了傳說中的 人臉識別 ?,在此,做個記錄。 人臉檢測,是基于Haar特征的cascade分類器, 人臉識別,是基于LDA理論的Fisherface算

    2024年02月09日
    瀏覽(20)
  • 用opencv識別顏色并輸出坐標

    pip?install?opencv-python 參考https://blog.csdn.net/qq_42114833/article/details/128648458?spm=1001.2014.3001.5502 利用相機,并不保存照片

    2024年02月16日
    瀏覽(16)
  • 簡易機器學習筆記(十一)opencv 簡易使用-人臉識別、分類任務

    簡易機器學習筆記(十一)opencv 簡易使用-人臉識別、分類任務

    前段時間摸了下機器學習,然后我發(fā)現(xiàn)其實openCV還是一個很浩瀚的庫的,現(xiàn)在也正在寫一篇有關yolo的博客,不過感覺理論偏多,所以在學yolo之前先摸一下opencv,簡單先寫個項目感受感受opencv。 openCV實際上已經(jīng)有一個比較完整的模型了,下載在haarcascades 這里我們下haarcascade

    2024年01月21日
    瀏覽(40)
  • Python-OpenCV實現(xiàn)簡單的顏色識別(對紅色和藍色識別并輸出)

    Python-OpenCV實現(xiàn)簡單的顏色識別(對紅色和藍色識別并輸出)

    攝像頭識別紅色和藍色并框選,當該顏色為攝像頭屏幕上大多數(shù)顏色時打印出該顏色的名稱 新手學習筆記,第一次寫博客,若有錯誤還請指出( ~`_`?)~ 2.初始設置? 3.圖像處理,提取顏色 4.輪廓繪制 ?5.顏色識別 ?下面是OpenCV中HSV空間顏色對照表 6.程序主體 下面是程序運行

    2024年02月11日
    瀏覽(22)
  • 【EPS32S3學習筆記】ESP32+OPENCV+人臉識別 本地部署

    【EPS32S3學習筆記】ESP32+OPENCV+人臉識別 本地部署

    提示:這里可以添加系列文章的所有文章的目錄,目錄需要自己手動添加 例如:第一章 Python 機器學習入門之pandas的使用 提示:寫完文章后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 提示:這里可以添加本文要記錄的大概內(nèi)容: 從https://github.com/joachimBurket/esp32-

    2024年02月09日
    瀏覽(31)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包