import cv2
import numpy as np
def ball_detect_possible_demo(image):
gray = cv2.cvtcolor(image, cv2.color_bgr2gray)
#image = cv2.circle(image, (640, 360), 50, (0, 0, 255), 1, 8, 0)
circles = cv2.houghcircles(gray, cv2.hough_gradient, 1, 50, param1=100, param2=50, minradius=50, maxradius=200)
if circles is none:
return image
for circle in circles[0]:
# 圓的基本資訊
print(circle[2])
# 座標行列(就是圓心)
x = int(circle[0])
y = int(circle[1])
# 半徑
r = int(circle[2])
# 在原圖用指定顏色圈出圓,引數設定為int所以圈畫存在誤差
image = cv2.circle(image, (x, y), r, (0, 0, 255), 1, 8, 0)
center:圓心位置
radius:圓的半徑
color:圓的顏色
thickness:圓形輪廓的粗細(如果為正)。負厚度表示要繪製實心圓。
linetype: 圓邊界的型別。
shift:中心座標和半徑值中的小數字數。"""
return image
def ball_detection(image):
#自由發揮的預留地
gray = cv2.cvtcolor(image, cv2.color_bgr2gray)
circles = cv2.houghcircles(gray, cv2.hough_gradient, 1, 50, param1=100, param2=50, minradius=50, maxradius=200)
if circles is none:
return image
for circle in circles[0]:
# 圓的基本資訊
print(circle[2])
# 座標行列(就是圓心)
x = int(circle[0])
y = int(circle[1])
# 半徑
r = int(circle[2])
# 在原圖用指定顏色圈出圓,引數設定為int所以圈畫存在誤差
image = cv2.circle(image, (x, y), r, (0, 0, 255), 1, 8, 0)
center:圓心位置
radius:圓的半徑
color:圓的顏色
thickness:圓形輪廓的粗細(如果為正)。負厚度表示要繪製實心圓。
linetype: 圓邊界的型別。
shift:中心座標和半徑值中的小數字數。"""
return image
cap = cv2.videocapture(0)
while true:
ret, frame = cap.read()
while ret is 0:
ret, frame = cap.read()
if ret is not 0:
break
frame = ball_detect_possible_demo(frame)
if cv2.waitkey(1) & 0xff == ord('q'):
break
cap.release()
cv2.destroyallwindows()
為接下來的目標檢測做一點點小鋪墊 Python呼叫攝像頭
如下 import cv2 import numpy 建立攝像頭物件 cap cv2.videocapture videotest test1.mp4 cap cv2.videocapture 0 引數為本地攝像頭 cap cv2.videocapture 1 引數為usb攝像頭 while 1 r...
旋轉的攝像頭
這幾天熟悉了一下entity,scenemanager,scenenode。自己可以簡單的實現了站立的robot和ninja,總感覺靜態的場景不好玩,想做一下動態的場景,由於本人目前是初學者,所以也就只能做做關鍵幀動畫,骨骼動畫就留在後面實現吧,hoho 定義乙個10秒種的動畫,這個動畫包含乙個動畫...
Linux (多攝像頭)如何執行指定的攝像頭
lz原來一直都是用的筆記本的攝像頭,結果標定的時候快趴地上了,可能是實在看不過去了,師兄給了乙個攝像頭,這樣相當於有兩個攝像頭,但是怎麼開啟指定的攝像頭呢?第乙個,安裝乙個軟體 sudo apt get install cheese安裝好了?哈哈,然後直接執行在終端中輸入 cheese就直接開啟筆記...