def calculate_char_perimeter_bw(self):
		
		if self._perimeter_path == None:
			self._perimeter_path = ms.walk_around_ccw(self._data_bw)
		perimeter_path = self._perimeter_path

		perimeter = 0
		for i in range(len(perimeter_path)):
			perimeter = perimeter +\
			 ((perimeter_path[i][0]-perimeter_path[i-1][0])**2.0+\
			 	(perimeter_path[i][1]-perimeter_path[i-1][1])**2.0)**0.5

		
		self._feature_perimeter = perimeter
		return
	def calculate_char_curvature_bw(self):
		if self._perimeter_path == None:
			self._perimeter_path = ms.walk_around_ccw(self._data_bw)
		perimeter_path = self._perimeter_path


		curvature = 0
		for i in range(len(self._perimeter_path)):
			if ((abs(self._perimeter_path[i-1][0] - self._perimeter_path[i][0]) == 1)\
			and\
			(abs(self._perimeter_path[i-1][1] - self._perimeter_path[i][1]) == 1)):
				curvature = curvature + 1

		self._feature_curvature = curvature

		return
	def calculate_char_horizontal_turns(self):
		if self._perimeter_path == None:
			self._perimeter_path = ms.walk_around_ccw(self._data_bw)
		perimeter_path = self._perimeter_path

		turns = 0

		direction = None

		for i in range(len(perimeter_path)):
			if (perimeter_path[i-1][0] - perimeter_path[i][0] == -1):
				new_direction = 'left'
			elif (perimeter_path[i-1][0] - perimeter_path[i][0] == 1):
				new_direction = 'right'
			else:
				new_direction = direction
			if (new_direction != direction and i != 0):
				turns = turns + 1
			direction = new_direction

		self._feature_horizontal_turns = turns

		return
fives = 0
i = 0
while fives < 2:
	
	if train_character_list[i]._classification == 5:
		
		

		if fives == 0:
			five_0 = train_character_list[i]
			fives = fives + 1
		

		elif fives == 1:
			five_1 = train_character_list[i]
			if ms.walk_around_ccw(five_1._data_bw).shape[0] == ms.walk_around_ccw(five_0._data_bw).shape[0]:
				fives = fives + 1
			
		
	i = i + 1



		
five_0._perimeter_path = ms.walk_around_ccw(five_0._data_bw)
five_0._xseries = ms.convert_path_to_xseries(five_0._perimeter_path)

five_1._perimeter_path = ms.walk_around_ccw(five_1._data_bw)
five_1._xseries = ms.convert_path_to_xseries(five_1._perimeter_path)

	character_test_file_name, 'train', (test_start_range,test_end_range))



###########################
##  BEGIN DTW ALGORITHM
###########################

correct_list = np.zeros((10,1))
total_list = np.zeros((10,1))

for i in range(train_character_list.shape[0]):
	train_character = train_character_list[i]
	

	train_character_list[i]._perimeter_path = ms.walk_around_ccw(train_character._data_bw)
	train_character._xseries = ms.convert_path_to_xseries(train_character._perimeter_path)
	train_character._yseries = ms.convert_path_to_yseries(train_character._perimeter_path)



	
for i in range(test_character_list.shape[0]):
	test_character = test_character_list[i]

	test_character._perimeter_path = ms.walk_around_ccw(test_character._data_bw)
	test_character._xseries = ms.convert_path_to_xseries(test_character._perimeter_path)
	test_character._yseries = ms.convert_path_to_yseries(test_character._perimeter_path)
	
	chf.dtw_classify_character(test_character, train_character_list)