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