저는 이미지에서 간단한 농구를 찾는 방법에 대해 조금은 애완 동물 프로젝트에 노력하고 있습니다. 지난 몇 주 동안 hough.circles와 변형 등을 사용하여 수많은 순열을 시도했지만 코드 예제와 내 자신 만의 농담으로 농구를 분리하는 데는 거의 가깝지 않습니다. 여기 어떻게 pythonically 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)
파일을 회색 음영 이미지로로드하는 대신 이미지를 색상 이미지로로드하는 방법과 이미지를 병합하고 Canny 필터로 전달하기 전에 공의 오렌지색을 강조하는 사전 처리를 수행하는 방법은 무엇입니까? –