Ejemplo n.º 1
0
def fill_joint_bilateral_filter(scan):

    # Load camera parameters
    intrinsics, _ = camera_parameters(scan)
    pano_ids = list(set([item.split('_')[0] for item in intrinsics.keys()]))
    print 'Processing scan %s with %d panoramas' % (scan, len(pano_ids))

    for pano in pano_ids:

        # Load undistorted depth and rgb images
        for c in range(3):
            for i in range(6):
                name = '%d_%d' % (c, i)
                rgb = cv2.imread(color_template % (base_dir, scan, pano, name))
                intensity = cv2.cvtColor(rgb, cv2.COLOR_BGR2GRAY)

                # Load 16bit depth image
                depth = cv2.imread(
                    depth_template % (base_dir, scan, pano, name),
                    cv2.IMREAD_ANYDEPTH)

                # Convert the depth image to uint8.
                maxDepth = np.max(depth) + 1
                depth = (depth.astype(np.float64) / maxDepth)
                depth[depth > 1] = 1
                depth = (depth * 255).astype(np.uint8)

                #cv2.imshow('input', cv2.applyColorMap(depth, cv2.COLORMAP_JET))

                # Convert to col major order
                depth = np.asfortranarray(depth)
                intensity = np.asfortranarray(intensity)
                mask = (depth == 0)
                result = np.zeros_like(depth)

                # Fill holes
                cbf(depth, intensity, mask, result)

                #cv2.imshow('result', cv2.applyColorMap(result, cv2.COLORMAP_JET))
                #cv2.waitKey(0)

                result = (result.astype(np.float64) / 255 * maxDepth).astype(
                    np.uint16)
                assert cv2.imwrite(
                    filled_depth_template % (base_dir, scan, pano, name),
                    result)
Ejemplo n.º 2
0
def downsize(scan):

    # Load pano ids
    intrinsics, _ = camera_parameters(scan)
    pano_ids = list(set([item.split('_')[0] for item in intrinsics.keys()]))
    print('Processing scan %s with %d panoramas' % (scan, len(pano_ids)))

    for pano in pano_ids:
        for skybox_ix in range(6):

            # Load and downsize skybox image
            skybox = cv2.imread(skybox_template %
                                (base_dir, scan, pano, skybox_ix))
            newimg = cv2.resize(skybox, (DOWNSIZED_WIDTH, DOWNSIZED_HEIGHT),
                                interpolation=cv2.INTER_AREA)

            # Save output
            assert cv2.imwrite(
                skybox_small_template % (base_dir, scan, pano, skybox_ix),
                newimg)
def downsizeWithMerge(scan):
    # Load pano ids
    intrinsics, _ = camera_parameters(scan)
    pano_ids = list(set([item.split('_')[0] for item in intrinsics.keys()]))
    print 'Processing scan %s with %d panoramas' % (scan, len(pano_ids))

    for pano in pano_ids:

        ims = []
        for skybox_ix in range(6):

            # Load and downsize skybox image
            skybox = cv2.imread(skybox_template %
                                (base_dir, scan, pano, skybox_ix))
            ims.append(
                cv2.resize(skybox, (DOWNSIZED_WIDTH, DOWNSIZED_HEIGHT),
                           interpolation=cv2.INTER_AREA))

        # Save output
        newimg = np.concatenate(ims, axis=1)
        assert cv2.imwrite(skybox_merge_template % (base_dir, scan, pano),
                           newimg)