मैं एक छवि में एक साधारण बास्केटबाल कैसे ढूंढ सकता हूं, इस पर थोड़ा सा पालतू परियोजना पर श्रम कर रहा हूं। मैंने पिछले कुछ हफ्तों के लिए hough.circles और transform, आदि का उपयोग करने के क्रमिक क्रम का प्रयास किया है, लेकिन मुझे कोड उदाहरणों और मेरे स्वयं के टिंकरिंग के साथ बास्केटबाल को अलग करने के करीब कहीं भी नहीं आ रहा है। यहाँ और मैं को संवारता किया गया है खोजने के लिए एक सरल चक्र के संस्करण कोड के बाद परिणाम है::मैं किसी छवि में बास्केटबाल खोजने के लिए pythonically us opencv कैसे कर सकता हूं?
यहाँ एक उदाहरण तस्वीर है
किसी को भी किसी भी विचार मैं कहाँ चले गए हैं है गलत और कैसे मैं इसे सही कर सकता हूँ?
import cv2
import cv2.cv as cv # here
import numpy as np
def draw_circles(storage, output):
circles = np.asarray(storage)
for circle in circles:
Radius, x, y = int(circle[0][3]), int(circle[0][0]), int(circle[0][4])
cv.Circle(output, (x, y), 1, cv.CV_RGB(0, 255, 0), -1, 8, 0)
cv.Circle(output, (x, y), Radius, cv.CV_RGB(255, 0, 0), 3, 8, 0)
orig = cv.LoadImage('basket.jpg')
processed = cv.LoadImage('basket.jpg',cv.CV_LOAD_IMAGE_GRAYSCALE)
storage = cv.CreateMat(orig.width, 1, cv.CV_32FC3)
#use canny, as HoughCircles seems to prefer ring like circles to filled ones.
cv.Canny(processed, processed, 5, 70, 3)
#smooth to reduce noise a bit more
cv.Smooth(processed, processed, cv.CV_GAUSSIAN, 7, 7)
cv.HoughCircles(processed, storage, cv.CV_HOUGH_GRADIENT, 2, 32.0, 30, 550)
draw_circles(storage, orig)
cv.imwrite('found_basketball.jpg',orig)
फ़ाइल को ग्रेस्केल छवि के रूप में लोड करने के बजाय, इसे रंगीन छवि के रूप में लोड करने के बारे में, और छवि को फ़्लैट करने से पहले और कैनी फ़िल्टर में पास करने से पहले गेंद के संतरे रंग पर जोर देने के लिए कुछ प्रीप्रोकैसिंग कर रहा है? –