def search_stones_old(self, image, threshold): circles = search_stones(image, None) false_stones = 0 stones = [] for n in range(circles.cols): pixel = cv.Get1D(circles, n) pt = (cv.Round(pixel[0]), cv.Round(pixel[1])) radious = cv.Round(pixel[2]) # Comprobar el color en la imagen color = check_color_stone(pt, radious, image, threshold) position = Move.pixel_to_position(image.width, pixel) if color == BLACK: cv.Circle(image, pt, radious, cv.CV_RGB(255, 0, 0), 2) stones.append(Move(color, position)) elif color == WHITE: cv.Circle(image, pt, radious, cv.CV_RGB(0, 255, 0), 2) stones.append(Move(color, position)) else: #cv.Circle(image, pt, radious, cv.CV_RGB(255,255,0), 2) false_stones += 1 return image, stones
def search_stones_old(self, image, threshold): circles = search_stones(image) false_stones = 0 stones = [] if circles == None: return image, stones for ci in circles[0,:]: ci = np.rint(ci).astype(np.int) # apply round and int pt = (ci[0], ci[1]) radious = ci[2] # Comprobar el color en la imagen color = check_color_stone(pt, radious, image, threshold) position = Move.pixel_to_position(image.shape[0], pt) if color == BLACK: circle(image, pt, radious, (255, 255, 255), 2) stones.append(Move(color, position)) elif color == WHITE: circle(image, pt, radious, (0, 0, 0), 2) stones.append(Move(color, position)) else: circle(image, pt, radious, (255,0,0), 2) false_stones += 1 return image, stones
def search_stones_LaB(self,image,th): stones = [] false_stones = 0 circles = search_stones(image, None) lab_img = cv.CreateImage(cv.GetSize(image), 8, 3) cv.CvtColor(image, lab_img, cv.CV_BGR2Lab) for n in range(circles.cols): pixel = cv.Get1D(circles, n) pt = (cv.Round(pixel[0]), cv.Round(pixel[1])) radious = cv.Round(pixel[2]) color = check_color_stone_LaB(pt, radious, lab_img) position = Move.pixel_to_position(image.width, pixel) if color == BLACK: # print "BLACK" cv.Circle(image, pt, radious, cv.CV_RGB(255, 0, 0), 2) stones.append(Move(color, position)) elif color == WHITE: # print "WHITE" cv.Circle(image, pt, radious, cv.CV_RGB(0, 255, 0), 2) stones.append(Move(color, position)) else: false_stones += 1 return image, stones
def search_stones_LaB(self,image,th): stones = [] false_stones = 0 circles = search_stones(image) lab_img = np.zeros(image.shape[:2], np.uint8) lab_img = cvtColor(image, COLOR_BGR2Lab) for n in range(circles.cols): pixel = Get1D(circles, n) pt = (Round(pixel[0]), Round(pixel[1])) radious = Round(pixel[2]) color = check_color_stone_LaB(pt, radious, lab_img) position = Move.pixel_to_position(image.width, pixel) if color == BLACK: # print("BLACK") circle(image, pt, radious, (255, 0, 0), 2) stones.append(Move(color, position)) elif color == WHITE: # print("WHITE") circle(image, pt, radious, (0, 255, 0), 2) stones.append(Move(color, position)) else: false_stones += 1 return image, stones