コード例 #1
0
ファイル: tests.py プロジェクト: wangvincentt/CV5670
def zero_ncc_test():
    ncc_size = 5

    image1 = np.zeros(
        (2 * ncc_size - 1, 2 * ncc_size - 1, 3), dtype=np.float32)
    image2 = image1

    n1 = preprocess_ncc(image1, ncc_size)
    n2 = preprocess_ncc(image2, ncc_size)

    ncc = compute_ncc(n1, n2)

    assert (np.abs(ncc) < 1e-6).all()
コード例 #2
0
ファイル: tests.py プロジェクト: wangvincentt/CV5670
def offset_ncc_test():
    ncc_size = 5

    image1 = np.random.random((2 * ncc_size - 1, 2 * ncc_size - 1, 3))
    image2 = image1 + 2

    n1 = preprocess_ncc(image1, ncc_size)
    n2 = preprocess_ncc(image2, ncc_size)

    ncc = compute_ncc(n1, n2)

    assert ncc.shape == (2 * ncc_size - 1, 2 * ncc_size - 1)
    assert (np.abs(ncc[ncc_size, ncc_size] - 1) < 1e-6).all()
コード例 #3
0
ファイル: tests.py プロジェクト: cs4670/pa4
def offset_ncc_test():
    ncc_size = 5

    image1 = np.random.random((2 * ncc_size - 1, 2 * ncc_size - 1, 3))
    image2 = image1 + 2

    n1 = preprocess_ncc(image1, ncc_size)
    n2 = preprocess_ncc(image2, ncc_size)

    ncc = compute_ncc(n1, n2)

    assert ncc.shape == (2 * ncc_size - 1, 2 * ncc_size - 1)
    assertNear(ncc[ncc_size, ncc_size], 1, 1e-6)
コード例 #4
0
ファイル: tests.py プロジェクト: cs4670/pa4
def zero_ncc_test():
    ncc_size = 5

    image1 = np.zeros(
        (2 * ncc_size - 1, 2 * ncc_size - 1, 3), dtype=np.float32)
    image2 = image1

    n1 = preprocess_ncc(image1, ncc_size)
    n2 = preprocess_ncc(image2, ncc_size)

    ncc = compute_ncc(n1, n2)

    assertNear(ncc, 0, 1e-6)
コード例 #5
0
ファイル: tests.py プロジェクト: cs4670/pa4
def ncc_full_identity_test():
    ncc_size = 5
    ncc_half = ncc_size / 2

    normalized = np.load('test_materials/fabrics_normalized.npy')

    ncc = compute_ncc(normalized, normalized)

    assert ncc.shape == normalized.shape[:2]
    assertNear(ncc[:ncc_half, :], 0, 1e-5)
    assertNear(ncc[-ncc_half:, :], 0, 1e-5)
    assertNear(ncc[:, :ncc_half], 0, 1e-5)
    assertNear(ncc[:, -ncc_half:], 0, 1e-5)
    assertNear(ncc[ncc_half:-ncc_half, ncc_half:-ncc_half], 1, 1e-5)
コード例 #6
0
ファイル: tests.py プロジェクト: cw11794/pa4
def ncc_full_identity_test():
    ncc_size = 5
    ncc_half = ncc_size / 2

    normalized = np.load('test_materials/fabrics_normalized.npy')

    ncc = compute_ncc(normalized, normalized)

    assert ncc.shape == normalized.shape[:2]
    assertNear(ncc[:ncc_half, :], 0, 1e-5)
    assertNear(ncc[-ncc_half:, :], 0, 1e-5)
    assertNear(ncc[:, :ncc_half], 0, 1e-5)
    assertNear(ncc[:, -ncc_half:], 0, 1e-5)
    assertNear(ncc[ncc_half:-ncc_half, ncc_half:-ncc_half], 1, 1e-5)
コード例 #7
0
ファイル: tests.py プロジェクト: pj263/Cornell-CS5670-2020
def ncc_full_identity_test():
    ncc_size = 5
    ncc_half = int(ncc_size / 2)

    normalized = np.load('test_materials/fabrics_normalized.npy')

    ncc = compute_ncc(normalized, normalized)

    assert ncc.shape == normalized.shape[:2]
    assert (np.abs(ncc[:ncc_half, :]) < 1e-5).all()
    assert (np.abs(ncc[-ncc_half:, :]) < 1e-5).all()
    assert (np.abs(ncc[:, :ncc_half]) < 1e-5).all()
    assert (np.abs(ncc[:, -ncc_half:]) < 1e-5).all()
    assert (
        np.abs(ncc[ncc_half:-ncc_half, ncc_half:-ncc_half] - 1) < 1e-5).all()
コード例 #8
0
ファイル: tests.py プロジェクト: wangvincentt/CV5670
def ncc_full_shapes_test():
    ncc_size = 5

    image1 = imread('test_materials/ncc1.png')
    image2 = imread('test_materials/ncc2.png')

    n1 = preprocess_ncc(image1, ncc_size)
    n2 = preprocess_ncc(image2, ncc_size)

    result = compute_ncc(n1, n2)

    correct = np.load('test_materials/ncc.npy')

    assert result.shape == n1.shape[:2]
    assert result.shape == n2.shape[:2]
    assert (np.abs(result - correct) < 1e-5).all()
コード例 #9
0
ファイル: tests.py プロジェクト: cs4670/pa4
def correlated_ncc_test():
    ncc_size = 5
    ncc_half = ncc_size / 2

    image1 = np.random.random((2 * ncc_size - 1, 2 * ncc_size - 1, 3))
    image2 = image1

    n1 = preprocess_ncc(image1, ncc_size)
    n2 = preprocess_ncc(image2, ncc_size)

    ncc = compute_ncc(n1, n2)

    assertNear(ncc[:ncc_half, :], 0, 1e-5)
    assertNear(ncc[-ncc_half:, :], 0, 1e-5)
    assertNear(ncc[:, :ncc_half], 0, 1e-5)
    assertNear(ncc[:, -ncc_half:], 0, 1e-5)
    assertNear(ncc[ncc_half:-ncc_half, ncc_half:-ncc_half], 1, 1e-5)
コード例 #10
0
ファイル: tests.py プロジェクト: cw11794/pa4
def correlated_ncc_test():
    ncc_size = 5
    ncc_half = ncc_size / 2

    image1 = np.random.random((2 * ncc_size - 1, 2 * ncc_size - 1, 3))
    image2 = image1

    n1 = preprocess_ncc(image1, ncc_size)
    n2 = preprocess_ncc(image2, ncc_size)

    ncc = compute_ncc(n1, n2)

    assertNear(ncc[:ncc_half, :], 0, 1e-5)
    assertNear(ncc[-ncc_half:, :], 0, 1e-5)
    assertNear(ncc[:, :ncc_half], 0, 1e-5)
    assertNear(ncc[:, -ncc_half:], 0, 1e-5)
    assertNear(ncc[ncc_half:-ncc_half, ncc_half:-ncc_half], 1, 1e-5)
コード例 #11
0
ファイル: tests.py プロジェクト: cw11794/pa4
def offset_and_scale_ncc_test():
    ncc_size = 5
    ncc_half = ncc_size / 2

    image1 = np.random.random((2 * ncc_size - 1, 2 * ncc_size - 1, 3))
    image2 = image1 * 2 + 3

    n1 = preprocess_ncc(image1, ncc_size)
    n2 = preprocess_ncc(image2, ncc_size)

    ncc = compute_ncc(n1, n2)

    assert ncc.shape == (2 * ncc_size - 1, 2 * ncc_size - 1)
    assertNear(ncc[:ncc_half, :], 0, 1e-6)
    assertNear(ncc[-ncc_half:, :], 0, 1e-6)
    assertNear(ncc[:, :ncc_half], 0, 1e-6)
    assertNear(ncc[:, -ncc_half:], 0, 1e-6)
    assertNear(ncc[ncc_half:-ncc_half, ncc_half:-ncc_half], 1, 1e-6)
コード例 #12
0
ファイル: tests.py プロジェクト: cs4670/pa4
def offset_and_scale_ncc_test():
    ncc_size = 5
    ncc_half = ncc_size / 2

    image1 = np.random.random((2 * ncc_size - 1, 2 * ncc_size - 1, 3))
    image2 = image1 * 2 + 3

    n1 = preprocess_ncc(image1, ncc_size)
    n2 = preprocess_ncc(image2, ncc_size)

    ncc = compute_ncc(n1, n2)

    assert ncc.shape == (2 * ncc_size - 1, 2 * ncc_size - 1)
    assertNear(ncc[:ncc_half, :], 0, 1e-6)
    assertNear(ncc[-ncc_half:, :], 0, 1e-6)
    assertNear(ncc[:, :ncc_half], 0, 1e-6)
    assertNear(ncc[:, -ncc_half:], 0, 1e-6)
    assertNear(ncc[ncc_half:-ncc_half, ncc_half:-ncc_half], 1, 1e-6)
コード例 #13
0
ファイル: tests.py プロジェクト: wangvincentt/CV5670
def anticorrelated_ncc_test():
    ncc_size = 5
    ncc_half = ncc_size / 2

    image1 = np.random.random((2 * ncc_size - 1, 2 * ncc_size - 1, 3))
    image2 = -image1

    n1 = preprocess_ncc(image1, ncc_size)
    n2 = preprocess_ncc(image2, ncc_size)

    ncc = compute_ncc(n1, n2)

    assert (np.abs(ncc[:ncc_half, :]) < 1e-5).all()
    assert (np.abs(ncc[-ncc_half:, :]) < 1e-5).all()
    assert (np.abs(ncc[:, :ncc_half]) < 1e-5).all()
    assert (np.abs(ncc[:, -ncc_half:]) < 1e-5).all()
    assert (
        np.abs(ncc[ncc_half:-ncc_half, ncc_half:-ncc_half] - -1) < 1e-5).all()
コード例 #14
0
ファイル: tests.py プロジェクト: wangvincentt/CV5670
def ncc_full_offset_test():
    ncc_size = 5

    image = imread('test_materials/justinpic_c.png')

    split = image.shape[1] / 2
    left = image[:, :split, :]
    right = image[:, split:, :]

    n1 = preprocess_ncc(left, ncc_size)
    n2 = preprocess_ncc(right, ncc_size)

    result = compute_ncc(n1, n2)

    correct = np.load('test_materials/justin_ncc.npy')

    assert result.shape == n1.shape[:2]
    assert result.shape == n2.shape[:2]
    assert (np.abs(result - correct) < 1e-5).all()
コード例 #15
0
ファイル: tests.py プロジェクト: wangvincentt/CV5670
def scale_ncc_test():
    ncc_size = 5
    ncc_half = ncc_size / 2

    image1 = np.random.random((2 * ncc_size - 1, 2 * ncc_size - 1, 3))
    image2 = image1 * 2

    n1 = preprocess_ncc(image1, ncc_size)
    n2 = preprocess_ncc(image2, ncc_size)

    ncc = compute_ncc(n1, n2)

    assert ncc.shape == (2 * ncc_size - 1, 2 * ncc_size - 1)
    assert (np.abs(ncc[:ncc_half, :]) < 1e-5).all()
    assert (np.abs(ncc[-ncc_half:, :]) < 1e-5).all()
    assert (np.abs(ncc[:, :ncc_half]) < 1e-5).all()
    assert (np.abs(ncc[:, -ncc_half:]) < 1e-5).all()
    assert (
        np.abs(ncc[ncc_half:-ncc_half, ncc_half:-ncc_half] - 1) < 1e-5).all()
コード例 #16
0
ファイル: tests.py プロジェクト: cs4670/pa4
def ncc_full_shapes_test():
    ncc_size = 5

    image1 = imread('test_materials/ncc1.png')
    image2 = imread('test_materials/ncc2.png')

    image1 = image1.astype(np.float32)
    image2 = image2.astype(np.float32)

    n1 = preprocess_ncc(image1, ncc_size)
    n2 = preprocess_ncc(image2, ncc_size)

    result = compute_ncc(n1, n2)

    correct = np.load('test_materials/ncc.npy')

    assert result.shape == n1.shape[:2]
    assert result.shape == n2.shape[:2]
    assertNear(result, correct, 1e-5)
コード例 #17
0
ファイル: tests.py プロジェクト: cs4670/pa4
def ncc_full_offset_test():
    ncc_size = 5

    image = imread('test_materials/justinpic_c.png')
    image = image.astype(np.float32)

    split = image.shape[1] / 2
    left = image[:, :split, :]
    right = image[:, split:, :]

    n1 = preprocess_ncc(left, ncc_size)
    n2 = preprocess_ncc(right, ncc_size)

    result = compute_ncc(n1, n2)

    correct = np.load('test_materials/justin_ncc.npy')

    assert result.shape == n1.shape[:2]
    assert result.shape == n2.shape[:2]
    assertNear(result, correct, 1e-5)
コード例 #18
0
ファイル: plane_sweep_stereo.py プロジェクト: cw11794/pa4
    points_left = np.float32(points_left.reshape(-1, 2))
    points_right = np.float32(points_right.reshape(-1, 2))

    H, mask = cv2.findHomography(points_left, points_right)
    assert (mask == 1).all()

    projected_left = cv2.warpPerspective(left, H, (width, height))
    """
    Normalize this projected left image.
    """
    left_normalized = preprocess_ncc(projected_left, ncc_size)
    """
    Compute the NCC score between the right and left images.
    """
    ncc = compute_ncc(right_normalized, left_normalized)

    volume.append(ncc)

    projected_gif_writer.append(np.uint8(projected_left))
    ncc_gif_writer.append(np.uint8(255 * np.clip(ncc / 2 + 0.5, 0, 1)))

    sys.stdout.write('Progress: {0}\r'.format(int(100 * pos / len(depths))))
    sys.stdout.flush()
print ''

toc = time.time()

print 'Plane sweep took {0} seconds'.format(toc - tic)

ncc_gif_writer.close()
コード例 #19
0
ファイル: plane_sweep_stereo.py プロジェクト: cs4670/pa4
    points_right = np.float32(points_right.reshape(-1, 2))

    H, mask = cv2.findHomography(points_left, points_right)
    assert (mask == 1).all()

    projected_left = cv2.warpPerspective(left, H, (width, height))

    """
    Normalize this projected left image.
    """
    left_normalized = preprocess_ncc(projected_left, ncc_size)

    """
    Compute the NCC score between the right and left images.
    """
    ncc = compute_ncc(right_normalized, left_normalized)

    volume.append(ncc)

    projected_gif_writer.append(np.uint8(projected_left))
    ncc_gif_writer.append(np.uint8(255 * np.clip(ncc / 2 + 0.5, 0, 1)))

    sys.stdout.write('Progress: {0}\r'.format(int(100 * pos / len(depths))))
    sys.stdout.flush()
print ''

toc = time.time()

print 'Plane sweep took {0} seconds'.format(toc - tic)

ncc_gif_writer.close()