wfy 顏色識別code

2021-09-24 04:35:07 字數 1475 閱讀 1216

優化後的**

# 匯入所需模組

import cv2 as cv

import numpy as np

import imutils

# 開啟攝像頭

cap = cv.videocapture(0)

while true:

# 讀取每一幀

_, frame = cap.read()

# 重設尺寸以提高計算速度

frame = imutils.resize(frame, width=600)

# 進行高斯模糊

blurred = cv.gaussianblur(frame, (11, 11), 0)

# 轉換顏色空間到hsv

hsv = cv.cvtcolor(blurred, cv.color_bgr2hsv)

# 定義紅色無圖的hsv閾值

lower_red = np.array([20, 100, 100])

upper_red = np.array([220, 255, 255])

# 對進行二值化處理

mask = cv.inrange(hsv, lower_red, upper_red)

# 腐蝕操作

mask = cv.erode(mask, none, iterations=2)

# 膨脹操作,先腐蝕後膨脹以濾除雜訊

mask = cv.dilate(mask, none, iterations=2)

cv.imshow('mask', mask)

# 尋找圖中輪廓

# 如果存在至少乙個輪廓則進行如下操作

if len(cnts) > 0:

# 找到面積最大的輪廓

c = max(cnts, key=cv.contourarea)

# 使用最小外接圓圈出面積最大的輪廓

((x, y), radius) = cv.minenclosingcircle(c)

# 計算輪廓的矩

m = cv.moments(c)

# 計算輪廓的重心

center = (int(m["m10"] / m["m00"]), int(m["m01"] / m["m00"]))

# 只處理尺寸足夠大的輪廓

if radius > 5:

# 畫出最小外接圓

cv.circle(frame, (int(x), int(y)), int(radius), (0, 255, 255), 2)

# 畫出重心

cv.circle(frame, center, 5, (0, 0, 255), -1)

cv.imshow('frame', frame)

k = cv.waitkey(5) & 0xff

if k == 27:

break

cap.release()

cv.destroyallwindows()

opencv 顏色識別

include include opencv2 highgui highgui.hpp include opencv2 imgproc imgproc.hpp using namespace cv using namespace std int main int argc,char argv nam...

OpenCV顏色識別

hsv模型中顏色的引數分別是 色調 h hue 飽和度 s saturation 亮度 v value 由a.r.smith在1978年建立的一種顏色空間,也稱六角錐體模型 hexcone model 設 r,g,b 分別是乙個顏色的紅 綠和藍座標,它們的值是在 0 到 1 之間的實數。設 max ...

MATLAB顏色識別

1 初步定位相片中路由器的位置 2 識別指示燈顯示什麼顏色 3 依據指示燈情況初步判斷故障原因 我這裡首先想蹲個坑回頭繼續補上,2019年 gray rgb2gray image r image 1 g image 2 b image 3 figure 1 subplot 2,2,1 imshow ...