優化後的**
# 匯入所需模組
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 ...