def main():
    displayer = Displayer()

    orig = fetch_image(sys.argv[1], 0)
    displayer.add_image(orig, 'Original')

    square = np.ones((9, 9), np.float32)
    rectangle = cv2.getStructuringElement(cv2.MORPH_RECT, (1, 13))
    ellipse = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (5, 5))
    cross = cv2.getStructuringElement(cv2.MORPH_CROSS, (5, 5))
    kernel = cross

    displayer.add_image(cv2.erode(orig, kernel, iterations=1), 'Erosion')
    displayer.add_image(cv2.dilate(orig, kernel, iterations=1), 'Dilation')
    displayer.add_image(cv2.morphologyEx(orig, cv2.MORPH_OPEN, kernel),
                        'Opening')
    closing = cv2.morphologyEx(orig, cv2.MORPH_CLOSE, kernel)
    displayer.add_image(closing, 'Closing')
    displayer.add_image(cv2.morphologyEx(closing, cv2.MORPH_OPEN, kernel),
                        'OpeningClosing')
    displayer.add_image(cv2.morphologyEx(orig, cv2.MORPH_GRADIENT, kernel),
                        'Gradient')
    displayer.add_image(cv2.morphologyEx(orig, cv2.MORPH_TOPHAT, kernel),
                        'Top Hat')
    displayer.add_image(cv2.morphologyEx(orig, cv2.MORPH_BLACKHAT, kernel),
                        'Black Hat')

    displayer.display(cmap='gray')
def main():
    displayer = Displayer()

    A = cv2.cvtColor(fetch_image('apple.jpg'), cv2.COLOR_BGR2RGB)
    B = cv2.cvtColor(fetch_image('orange.jpg'), cv2.COLOR_BGR2RGB)

    # generate Gaussian pyramid for A
    G = A.copy()
    gpA = [G]
    for i in xrange(6):
        G = cv2.pyrDown(G)
        gpA.append(G)

    # generate Gaussian pyramid for B
    G = B.copy()
    gpB = [G]
    for i in xrange(6):
        G = cv2.pyrDown(G)
        gpB.append(G)

    # generate Laplacian Pyramid for A
    lpA = [gpA[5]]
    for i in xrange(5, 0, -1):
        GE = cv2.pyrUp(gpA[i])
        L = cv2.subtract(gpA[i - 1], GE)
        lpA.append(L)

    # generate Laplacian Pyramid for B
    lpB = [gpB[5]]
    for i in xrange(5, 0, -1):
        GE = cv2.pyrUp(gpB[i])
        L = cv2.subtract(gpB[i - 1], GE)
        lpB.append(L)

    # Now add left and right halves of images in each level
    LS = []
    for la, lb in zip(lpA, lpB):
        rows, cols, dpt = la.shape
        ls = np.hstack((la[:, 0:cols / 2], lb[:, cols / 2:]))
        LS.append(ls)

    # now reconstruct
    ls_ = LS[0]
    for i in xrange(1, 6):
        ls_ = cv2.pyrUp(ls_)
        displayer.add_image(ls_, i)
        ls_ = cv2.add(ls_, LS[i])

    # image with direct connecting each half
    real = np.hstack((A[:, :cols / 2], B[:, cols / 2:]))

    displayer.add_image(ls_, "pyramid")
    #displayer.add_image(real, "stacked")

    #for i in range(len(lpA)):
    #    displayer.add_image(LS[i], i)

    displayer.display()
def main():
    displayer = Displayer()

    A = cv2.cvtColor(fetch_image('apple.jpg'), cv2.COLOR_BGR2RGB)
    B = cv2.cvtColor(fetch_image('orange.jpg'), cv2.COLOR_BGR2RGB)

    # generate Gaussian pyramid for A
    G = A.copy()
    gpA = [G]
    for i in xrange(6):
        G = cv2.pyrDown(G)
        gpA.append(G)

    # generate Gaussian pyramid for B
    G = B.copy()
    gpB = [G]
    for i in xrange(6):
        G = cv2.pyrDown(G)
        gpB.append(G)

    # generate Laplacian Pyramid for A
    lpA = [gpA[5]]
    for i in xrange(5,0,-1):
        GE = cv2.pyrUp(gpA[i])
        L = cv2.subtract(gpA[i-1],GE)
        lpA.append(L)

    # generate Laplacian Pyramid for B
    lpB = [gpB[5]]
    for i in xrange(5,0,-1):
        GE = cv2.pyrUp(gpB[i])
        L = cv2.subtract(gpB[i-1],GE)
        lpB.append(L)

    # Now add left and right halves of images in each level
    LS = []
    for la,lb in zip(lpA,lpB):
        rows,cols,dpt = la.shape
        ls = np.hstack((la[:,0:cols/2], lb[:,cols/2:]))
        LS.append(ls)

    # now reconstruct
    ls_ = LS[0]
    for i in xrange(1,6):
        ls_ = cv2.pyrUp(ls_)
        displayer.add_image(ls_, i)
        ls_ = cv2.add(ls_, LS[i])

    # image with direct connecting each half
    real = np.hstack((A[:,:cols/2],B[:,cols/2:]))

    displayer.add_image(ls_, "pyramid")
    #displayer.add_image(real, "stacked")

    #for i in range(len(lpA)):
    #    displayer.add_image(LS[i], i)

    displayer.display()
def main():
    displayer = Displayer()

    orig = cv2.cvtColor(fetch_image(sys.argv[1]), cv2.COLOR_BGR2GRAY)

    displayer.add_image(orig, 'Original')


    img = cv2.bilateralFilter(np.float32(orig), 9, 75, 75)



    x_kernel = np.array([[-1, 0, 1],
                         [-2, 0, 2],
                         [-1, 0, 1]])

    y_kernel = np.array([[ 1,  2,  1],
                         [ 0,  0,  0],
                         [-1, -2, -1]])
    """
    x_kernel = np.array([[3, 10, 3],
                         [0, 0, 0],
                         [-3, -10, -3]])

    y_kernel = np.array([[ -3,  -0,  3],
                         [ -10,  0,  10],
                         [ -3, -0, 3]])
    """

    """
    y_kernel = x_kernel = np.array([[ 0.5, 1, 0.5],
                                    [ 1, -6, 1],
                                    [ 0.5, 1, 0.5]])
    """

    x_gradient = cv2.filter2D(img, -1, x_kernel)
    abs_x = np.absolute(x_gradient)
    x_grad_u8 = np.uint8(abs_x)
    displayer.add_image(x_grad_u8, 'manual x gradient')

    y_gradient = cv2.filter2D(img, -1, y_kernel)
    abs_y = np.absolute(y_gradient)
    y_grad_u8 = np.uint8(abs_y)
    displayer.add_image(y_grad_u8, 'manual y gradient')


    magnitude = cv2.magnitude(abs_x, abs_y)
    magnitude_u8 = np.uint8(magnitude)
    displayer.add_image(magnitude_u8, 'magnitude')
    """
    lap = cv2.Laplacian(orig, -1, cv2.CV_64F)
    displayer.add_image(np.uint8(lap), 'laplacian')
    """
    canny = cv2.Canny(orig, 100, 200)
    displayer.add_image(np.uint8(canny), 'Canny')

    displayer.display(cmap='gray')
Esempio n. 5
0
def main():
    img = fetch_image(sys.argv[1])

    displayer = Displayer()

    kernel = np.ones((5, 5), np.float32)/25

    displayer.add_image(img, 'Original')
    displayer.add_image(cv2.filter2D(img, -1, kernel), 'Average')
    displayer.add_image(cv2.GaussianBlur(img, (5, 5), 0), 'Gaussian')
    displayer.add_image(cv2.medianBlur(img, 5), 'Median')
    displayer.add_image(cv2.bilateralFilter(img, 9, 75, 75), 'Bilateral')

    displayer.display()
def main():
    displayer = Displayer()

    orig = cv2.cvtColor(fetch_image(sys.argv[1]), cv2.COLOR_BGR2GRAY)

    displayer.add_image(orig, 'Original')

    img = cv2.bilateralFilter(np.float32(orig), 9, 75, 75)

    x_kernel = np.array([[-1, 0, 1], [-2, 0, 2], [-1, 0, 1]])

    y_kernel = np.array([[1, 2, 1], [0, 0, 0], [-1, -2, -1]])
    """
    x_kernel = np.array([[3, 10, 3],
                         [0, 0, 0],
                         [-3, -10, -3]])

    y_kernel = np.array([[ -3,  -0,  3],
                         [ -10,  0,  10],
                         [ -3, -0, 3]])
    """
    """
    y_kernel = x_kernel = np.array([[ 0.5, 1, 0.5],
                                    [ 1, -6, 1],
                                    [ 0.5, 1, 0.5]])
    """

    x_gradient = cv2.filter2D(img, -1, x_kernel)
    abs_x = np.absolute(x_gradient)
    x_grad_u8 = np.uint8(abs_x)
    displayer.add_image(x_grad_u8, 'manual x gradient')

    y_gradient = cv2.filter2D(img, -1, y_kernel)
    abs_y = np.absolute(y_gradient)
    y_grad_u8 = np.uint8(abs_y)
    displayer.add_image(y_grad_u8, 'manual y gradient')

    magnitude = cv2.magnitude(abs_x, abs_y)
    magnitude_u8 = np.uint8(magnitude)
    displayer.add_image(magnitude_u8, 'magnitude')
    """
    lap = cv2.Laplacian(orig, -1, cv2.CV_64F)
    displayer.add_image(np.uint8(lap), 'laplacian')
    """
    canny = cv2.Canny(orig, 100, 200)
    displayer.add_image(np.uint8(canny), 'Canny')

    displayer.display(cmap='gray')
def main():
    displayer = Displayer()

    orig = fetch_image(sys.argv[1], 0)
    displayer.add_image(orig, "Original")

    square = np.ones((9, 9), np.float32)
    rectangle = cv2.getStructuringElement(cv2.MORPH_RECT, (1, 13))
    ellipse = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (5, 5))
    cross = cv2.getStructuringElement(cv2.MORPH_CROSS, (5, 5))
    kernel = cross

    displayer.add_image(cv2.erode(orig, kernel, iterations=1), "Erosion")
    displayer.add_image(cv2.dilate(orig, kernel, iterations=1), "Dilation")
    displayer.add_image(cv2.morphologyEx(orig, cv2.MORPH_OPEN, kernel), "Opening")
    closing = cv2.morphologyEx(orig, cv2.MORPH_CLOSE, kernel)
    displayer.add_image(closing, "Closing")
    displayer.add_image(cv2.morphologyEx(closing, cv2.MORPH_OPEN, kernel), "OpeningClosing")
    displayer.add_image(cv2.morphologyEx(orig, cv2.MORPH_GRADIENT, kernel), "Gradient")
    displayer.add_image(cv2.morphologyEx(orig, cv2.MORPH_TOPHAT, kernel), "Top Hat")
    displayer.add_image(cv2.morphologyEx(orig, cv2.MORPH_BLACKHAT, kernel), "Black Hat")

    displayer.display(cmap="gray")