Пример #1
0
from vision.ruler_detection.find_scale import ruler_scale_factor
from vision.tests import get_test_image, get_test_path, get_test_folder_images

image = get_test_image(
    'ruler', 'measured',
    'BMNHE_1045431_13499_7ebc4ab5363564654efa82aadc3ac056c4fe88ec.JPG')

pixel_distance = 37.23
real_world_distance = pixel_distance * ruler_scale_factor(image, distance=0.5)
Пример #2
0
from vision.ruler_detection.find_scale import ruler_scale_factor
from vision.tests import get_test_image, get_test_path, get_test_folder_images

image = get_test_image('ruler',
                       'measured',
                       'BMNHE_1045431_13499_7ebc4ab5363564654efa82aadc3ac056c4fe88ec.JPG')

pixel_distance = 37.23
real_world_distance = pixel_distance * ruler_scale_factor(image, distance=0.5)
    points = closest_points[:, [1, 0]]
    perimeter = draw.polygon_perimeter(points[:, 0], points[:, 1])
    draw.set_color(output_image, (perimeter[0].astype(np.int), perimeter[1].astype(np.int)), [0, 1, 0])

    points = shape[:, [1, 0]]
    perimeter = draw.polygon_perimeter(points[:, 0], points[:, 1])
    draw.set_color(output_image, (perimeter[0].astype(np.int), perimeter[1].astype(np.int)), [0, 0, 1])
    return output_image

shapes = [smoothed_shape(read_shape(i)) for i in range(4)]
aligned_shapes = procrustes.generalized_procrustes(shapes)
shape_model = subspace_shape.learn(aligned_shapes, K=8)

# wings_image = get_test_image('wing_area', 'cropped', 'unlabelled', '7.png')
wings_image = get_test_image('wing_area', 'pinned', '1.png')
edges = canny(wings_image[:, :, 1], 3)

saliency = saliency_dragonfly(wings_image)
thresh = threshold(saliency)

edges = skeletonize(edges)
gaps = scipy.ndimage.filters.convolve(1 * edges, np.ones((3, 3)), mode='constant', cval=False)
edges[(gaps == 2) & ~edges] = True
edges = skeletonize(edges)

distance = scipy.ndimage.distance_transform_edt(~edges)

labels = label(edges)

regions = regionprops(labels)
    output_image = 0.5 * (image + edge_image[:, :, np.newaxis])

    points = closest_points[:, [1, 0]]
    perimeter = draw.polygon_perimeter(points[:, 0], points[:, 1])
    draw.set_color(output_image, (perimeter[0].astype(np.int), perimeter[1].astype(np.int)), [0, 1, 0])

    points = shape[:, [1, 0]]
    perimeter = draw.polygon_perimeter(points[:, 0], points[:, 1])
    draw.set_color(output_image, (perimeter[0].astype(np.int), perimeter[1].astype(np.int)), [0, 0, 1])
    return output_image

shapes = [smoothed_shape(read_shape(i)) for i in range(4)]
aligned_shapes = procrustes.generalized_procrustes(shapes)
shape_model = subspace_shape.learn(aligned_shapes, K=8)

wings_image = get_test_image('wing_area', 'cropped', 'unlabelled', '7.png')
# write_image('wings.png', wings_image)
edges = canny(wings_image[:, :, 1], 3)

saliency = saliency_dragonfly(wings_image)
thresh = threshold(saliency)

background = threshold(scipy.ndimage.distance_transform_edt(~thresh))

contours = find_contours(thresh, level=0.5)
outline = max(contours, key=attrgetter('size')).astype(np.int)
outline_image = np.zeros_like(edges)
draw.set_color(outline_image, (outline[:, 0], outline[:, 1]), True)

edges = skeletonize(edges)
gaps = scipy.ndimage.filters.convolve(1 * edges, np.ones((3, 3)), mode='constant', cval=False)