亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Opencv識(shí)別圖片顏色并繪制輪廓實(shí)現(xiàn)代碼示例

 更新時(shí)間:2024年12月13日 10:43:34   作者:加德霍克  
這篇文章主要給大家介紹了關(guān)于Opencv識(shí)別圖片顏色并繪制輪廓實(shí)現(xiàn)的相關(guān)資料,實(shí)驗(yàn)代碼和現(xiàn)象展示了如何從原始圖像中識(shí)別和突出顯示特定顏色區(qū)域,并通過(guò)圖像處理技術(shù)增強(qiáng)識(shí)別效果,需要的朋友可以參考下

一、實(shí)驗(yàn)原理

1、顏色空間轉(zhuǎn)換:

Opencv識(shí)別圖片顏色的邏輯

OpenCV 的默認(rèn)顏色空間為 BGR(藍(lán)、綠、紅),但識(shí)別特定顏色更適合在 HSV(色調(diào)、飽和度、亮度)顏色空間中進(jìn)行。
HSV 優(yōu)勢(shì):能夠更方便地描述顏色范圍,用于篩選特定顏色區(qū)域。

2、顏色范圍過(guò)濾:

不同顏色的HSV值

利用 cv2.inRange 函數(shù),通過(guò)設(shè)定的顏色范圍,將指定顏色區(qū)域提取為二值掩膜。

3、圖像處理:

①濾波:

通過(guò)中值濾波去除噪點(diǎn),平滑圖像。濾波是應(yīng)用卷積來(lái)實(shí)現(xiàn)的,卷積的關(guān)鍵就是卷積核,下圖為卷積核濾波原理:

②形態(tài)學(xué)變換:

通過(guò)開(kāi)運(yùn)算(先腐蝕后膨脹)進(jìn)一步消除小噪聲和孤立點(diǎn)。

4、輪廓提取和繪制:

  • 利用 cv2.findContours 提取二值圖像的輪廓。

  • 根據(jù)輪廓面積進(jìn)行過(guò)濾,保留符合條件的目標(biāo)區(qū)域。
  • 使用 cv2.drawContours 在原圖上繪制輪廓。

cv2.drawContours(image, contours, contourIdx, color, thickness, lineType, hierarchy, maxLevel, offset)

二、實(shí)驗(yàn)代碼

import cv2
import numpy as np

# 1. 輸入圖片并調(diào)整大小
img = cv2.imread("./color_1.png")
if img is None:
    print("無(wú)法加載圖片,請(qǐng)檢查路徑!")
    exit()
img = cv2.resize(img, (0, 0), fx=0.7, fy=0.7)

# 2. 轉(zhuǎn)換 HSV 顏色空間
img_hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)

# 3. 定義顏色范圍并生成二值掩膜
yellow_min = np.array([26, 43, 46])  # 黃色下界
yellow_max = np.array([34, 255, 255])  # 黃色上界
img_mask = cv2.inRange(img_hsv, yellow_min, yellow_max)

# 4. 中值濾波去噪
img_blur = cv2.medianBlur(img_mask, 7)

# 5. 形態(tài)學(xué)變換 - 開(kāi)運(yùn)算
kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (5, 5))
img_open = cv2.morphologyEx(img_blur, cv2.MORPH_OPEN, kernel)

# 6. 輪廓提取
contours, _ = cv2.findContours(img_open, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

# 7. 遍歷輪廓并繪制
img_result = img.copy()
for contour in contours:
    area = cv2.contourArea(contour)
    if area < 200 or area > 200000:  # 根據(jù)面積過(guò)濾無(wú)效輪廓
        continue
    cv2.drawContours(img_result, [contour], -1, (0, 0, 255), 2)  # 繪制輪廓

# 8. 顯示結(jié)果
cv2.imshow("Original Image", img)
cv2.imshow("Filtered Contours", img_result)

cv2.waitKey(0)
cv2.destroyAllWindows()

三、實(shí)驗(yàn)現(xiàn)象

1、原始圖像:

顯示未處理的原始圖片,包含多個(gè)顏色區(qū)域。

2、顏色掩膜:

二值圖像僅顯示識(shí)別出的黃色區(qū)域,其余部分為黑色背景。

3、濾波和平滑:

  • 濾波后噪點(diǎn)減少,目標(biāo)區(qū)域更加連續(xù)。
  • 開(kāi)運(yùn)算消除了孤立的噪聲點(diǎn),保留了主要的目標(biāo)區(qū)域。

4、輪廓繪制:

  • 符合面積條件的輪廓被成功繪制,輪廓線為紅色。
  • 無(wú)效的小輪廓被過(guò)濾,不影響結(jié)果的清晰度。

總結(jié) 

到此這篇關(guān)于Opencv識(shí)別圖片顏色并繪制輪廓實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Opencv識(shí)別圖片顏色繪制輪廓內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python?Pandas中l(wèi)oc和iloc函數(shù)的基本用法示例

    Python?Pandas中l(wèi)oc和iloc函數(shù)的基本用法示例

    無(wú)論是loc還是iloc都是pandas中數(shù)據(jù)篩選的函數(shù),下面這篇文章主要給大家介紹了關(guān)于Python?Pandas中l(wèi)oc和iloc函數(shù)的基本用法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • python實(shí)現(xiàn)系統(tǒng)狀態(tài)監(jiān)測(cè)和故障轉(zhuǎn)移實(shí)例方法

    python實(shí)現(xiàn)系統(tǒng)狀態(tài)監(jiān)測(cè)和故障轉(zhuǎn)移實(shí)例方法

    這篇文章主要介紹了用python實(shí)現(xiàn)系統(tǒng)狀態(tài)監(jiān)測(cè)和故障轉(zhuǎn)移的代碼方法
    2013-11-11
  • pandas loc iloc ix用法詳細(xì)分析

    pandas loc iloc ix用法詳細(xì)分析

    pandas處理數(shù)據(jù)時(shí),我們會(huì)經(jīng)常看到dataframe結(jié)構(gòu)使用loc, iloc, ix等方法,那么這些方法到底有啥區(qū)別,下面我們來(lái)進(jìn)行詳細(xì)分析,感興趣的朋友跟隨小編一起看看吧
    2023-01-01
  • Python實(shí)現(xiàn)用戶注冊(cè)登錄程序

    Python實(shí)現(xiàn)用戶注冊(cè)登錄程序

    這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)用戶注冊(cè)登錄程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • Django+Nginx+uWSGI 定時(shí)任務(wù)的實(shí)現(xiàn)方法

    Django+Nginx+uWSGI 定時(shí)任務(wù)的實(shí)現(xiàn)方法

    本文主要介紹了Django+Nginx+uWSGI 定時(shí)任務(wù)的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • pandas對(duì)齊運(yùn)算的實(shí)現(xiàn)示例

    pandas對(duì)齊運(yùn)算的實(shí)現(xiàn)示例

    本文主要介紹了pandas對(duì)齊運(yùn)算的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • Python中包的用法及安裝

    Python中包的用法及安裝

    在本篇文章里小編給大家整理的是關(guān)于Python中一些包的基本用處和安裝方法,需要的朋友們可以學(xué)習(xí)參考下。
    2020-02-02
  • Python操作SQLite簡(jiǎn)明教程

    Python操作SQLite簡(jiǎn)明教程

    這篇文章主要介紹了Python操作SQLite簡(jiǎn)明教程,簡(jiǎn)單明了的入門(mén)教程,包含連接、建表、增刪修查等例子,需要的朋友可以參考下
    2014-07-07
  • Python中的np.vstack()和np.hstack()詳解

    Python中的np.vstack()和np.hstack()詳解

    這篇文章主要介紹了np.vstack()和np.hstack(),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-04-04
  • Python入門(mén)教程(四十)Python的NumPy數(shù)組創(chuàng)建

    Python入門(mén)教程(四十)Python的NumPy數(shù)組創(chuàng)建

    這篇文章主要介紹了Python入門(mén)教程(四十)Python的NumPy數(shù)組創(chuàng)建,NumPy 用于處理數(shù)組,NumPy 中的數(shù)組對(duì)象稱為 ndarray,我們可以使用 array() 函數(shù)創(chuàng)建一個(gè) NumPy ndarray 對(duì)象,需要的朋友可以參考下
    2023-05-05

最新評(píng)論