def test_threshold_meanshift_wrong_parameters_2(): image = numpy.zeros((25, 25, 3), dtype=numpy.uint8) try: phm_img.threshold_meanshift(image, None) except Exception, e: assert e.message == 'mean should be a numpy.ndarray' assert type(e) == TypeError
def test_threshold_meanshift_wrong_parameters_9(): image = numpy.zeros((25, 25, 3), dtype=numpy.uint8) mean_image = numpy.zeros((25, 25, 3), dtype=numpy.uint8) try: phm_img.threshold_meanshift(image, mean_image, reverse=None) except Exception, e: assert type(e) == TypeError
def test_threshold_meanshift_wrong_parameters_8(): image = numpy.zeros((25, 25, 3), dtype=numpy.uint8) mean_im = numpy.zeros((25, 25, 3), dtype=numpy.uint8) try: phm_img.threshold_meanshift(image, mean_im, threshold=2) except Exception, e: assert type(e) == ValueError
def test_threshold_meanshift_wrong_parameters_10(): image = numpy.zeros((25, 25, 3), dtype=numpy.uint8) mean_image = numpy.zeros((25, 25, 3), dtype=numpy.uint8) mask = [[1, 1, 1]] try: phm_img.threshold_meanshift(image, mean_image, mask=mask) except Exception, e: assert type(e) == TypeError
def test_threshold_meanshift_wrong_parameters_7(): image = numpy.zeros((25, 25, 3), dtype=numpy.uint8) mean_im = numpy.zeros((25, 25), dtype=numpy.uint8) try: phm_img.threshold_meanshift(image, mean_im) except Exception, e: assert e.message == 'mean should be 3D array' assert type(e) == ValueError
def test_threshold_meanshift_wrong_parameters_6(): image = numpy.zeros((25, 25, 3), dtype=numpy.uint8) mean_im = numpy.zeros((10, 10, 3), dtype=numpy.uint8) try: phm_img.threshold_meanshift(image, mean_im) except Exception, e: assert e.message == 'image and mean must have equal sizes' assert type(e) == ValueError
def test_threshold_meanshift_wrong_parameters_1(): mean_image = numpy.zeros((25, 25, 3), dtype=numpy.uint8) try: phm_img.threshold_meanshift(None, mean_image) except Exception as e: assert str(e) == 'image should be a numpy.ndarray' assert type(e) == TypeError else: assert False
def test_threshold_meanshift_wrong_parameters_12(): image = numpy.zeros((25, 25, 3), dtype=numpy.uint8) mean_image = numpy.zeros((25, 25, 3), dtype=numpy.uint8) mask = numpy.zeros((25, 26), dtype=numpy.uint8) try: phm_img.threshold_meanshift(image, mean_image, mask=mask) except Exception as e: assert type(e) == ValueError else: assert False
def test_threshold_meanshift_wrong_parameters_3(): image = numpy.zeros((25, 25), dtype=numpy.uint8) mean_image = numpy.zeros((25, 25, 3), dtype=numpy.uint8) try: phm_img.threshold_meanshift(image, mean_image) except Exception as e: assert str(e) == 'image should be 3D array' assert type(e) == ValueError else: assert False
def routine_side_binarization(image, mean_img): maks = phm_data.tutorial_data_binarization_mask() threshold = 0.3 dark_background = False hsv_min = (30, 11, 0) hsv_max = (129, 254, 141) # Convert image on HSV representation hsv_image = cv2.cvtColor(image, cv2.COLOR_BGR2HSV) # Threshold the image with HSV min and max value binary_hsv_image = phm_img.threshold_hsv(hsv_image, hsv_min, hsv_max, maks[0]) # Threshold the image with difference between image and mean_image binary_mean_shift_image = phm_img.threshold_meanshift( image, mean_img, threshold, dark_background, maks[1]) # Add the two image result = cv2.add(binary_hsv_image, binary_mean_shift_image) # Erode and dilate the image to remove possible noise result = cv2.medianBlur(result, 3) return result
def test_threshold_meanshift_4(): im1 = numpy.zeros((25, 25, 3), numpy.uint8) im2 = numpy.zeros((25, 25, 3), numpy.uint8) mask = numpy.zeros((25, 25), numpy.uint8) mean_im = phm_img.mean_image(list([im1, im2])) bin_img = phm_img.threshold_meanshift(im1, mean_im, mask=mask, reverse=True) assert bin_img.shape == (25, 25)
def test_threshold_meanshift_1(): im1 = numpy.zeros((25, 25, 3), numpy.uint8) im2 = numpy.zeros((25, 25, 3), numpy.uint8) mean_im = phm_img.mean_image(list([im1, im2])) bin_img = phm_img.threshold_meanshift(im1, mean_im) assert bin_img.shape == (25, 25)
def test_threshold_meanshift_no_regression_1(): plant_number = 6 raw_side_images = phm_data.raw_images(plant_number=plant_number)['side'] mask = phm_data.tutorial_data_binarization_mask()[1] mean_im = phm_img.mean_image(raw_side_images.values()) im_bin = phm_img.threshold_meanshift(raw_side_images[0], mean_im, mask=mask) ref = 158482 # Acceptation error of 0.01 % acceptation_error = ref * 0.001 if abs(numpy.count_nonzero(im_bin) - ref) > acceptation_error: assert False