def q3(): # The shuffling is for test examples of skin and non skin # (without shuffling we test only non skins) examples = np.random.permutation(get_mat('Skin_NonSkin.txt')) powers = 2**np.arange(-5, 16, 2.0) learning_part = 0.7 learning, testing = np.split(examples, [examples.shape[0]*learning_part]) C1, errors = find_c(powers, learning) error = sum([r[-1] * C1(r[:-1]) < 0 for r in testing]) error /= testing.shape[0] return error, np.array([powers,errors])
def skin_mat(): examples = np.random.permutation(get_mat('Skin_NonSkin.txt')) powers = 2**np.arange(-5, 16, 2.0) classifier, errors = find_c(powers, examples) img = misc.imread('image_0009.jpg') skin = np.array(img[..., 0]) m, n = skin.shape for i in range(m): for j in range(n): r, g, b = img[i, j] s = classifier(np.array([b, g, r])) skin[i, j] = 255 if s > 0 else 0 return skin