• COMP9517 lab3 image segementation


    import numpy as np
    import matplotlib.pyplot as plt
    import matplotlib.image as mpimg

    from scipy import ndimage as ndi
    from skimage.morphology import watershed
    from skimage.feature import peak_local_max
    from sklearn.cluster import MeanShift

    from PIL import Image

    size = 100, 100

    img_names = ["shapes.png", "strawberry.png"]
    ext_names = ["coins.png", "kiwi.png"]

    images = [r'C:UsersharriDesktop2020T29517lab3COMP9517_20T2_Lab3_Images\'+i for i in img_names]
    ext_images = [r'C:UsersharriDesktop2020T29517lab3COMP9517_20T2_Lab3_Images\'+i for i in ext_names]


    def plot_three_images(figure_title, image1, label1,
    image2, label2, image3, label3):
    fig = plt.figure()
    fig.suptitle(figure_title)

    # Display the first image
    fig.add_subplot(1, 3, 1)
    plt.imshow(image1)
    plt.axis('off')
    plt.title(label1)

    # Display the second image
    fig.add_subplot(1, 3, 2)
    plt.imshow(image2)
    plt.axis('off')
    plt.title(label2)

    # Display the third image
    fig.add_subplot(1, 3, 3)
    plt.imshow(image3)
    plt.axis('off')
    plt.title(label3)

    plt.show()


    for img_path in ext_images:
    img = Image.open(img_path)
    img.thumbnail(size)


    # TODO: perform meanshift on image
    meanShift_img = np.array(img)[:,:,:3]
    R = meanShift_img[:,:,0:1].flatten()[:,np.newaxis]
    G = meanShift_img[:,:,1:2].flatten()[:,np.newaxis]
    B = meanShift_img[:,:,2:3].flatten()[:,np.newaxis]
    colour_samples = np.concatenate((R,G,B),axis=1)
    MS = MeanShift(bin_seeding=True)
    ms_labels = MS.fit_predict(colour_samples) # CHANGE THIS
    ms_labels = ms_labels.reshape(meanShift_img.shape[0],meanShift_img.shape[1])
    # TODO: perform an optimisation and then watershed on image

    ws_img = img.convert('L')
    gray_ws_image = np.array(ws_img)
    distance = ndi.distance_transform_edt(gray_ws_image)
    local_max = peak_local_max(distance, indices=False, footprint=np.ones((3, 3)),
    labels=gray_ws_image)
    markers = ndi.label(local_max)[0]

    ws_labels = watershed(-distance,markers,mask = gray_ws_image) # CHANGE THIS


    # Display the results
    plot_three_images(img_path, img, "Original Image", ms_labels, "MeanShift Labels",
    ws_labels, "Watershed Labels")
  • 相关阅读:
    good course Very
    HTTP Hypertext Transfer Protocol Overview
    Linux下tar.xz结尾的文件的解压方法
    原来java HttpURLConnection本身就提供了chunk的支持,又是让人一惊啊
    牛人一枚
    V2EX › 花了3个晚上,把readability最新的1.7.1转成了python版的
    13.11. 惯例优先原则(convention over configuration)
    明尼苏达大学
    快速构建实时抓取集群 « 搜索技术博客-淘宝
    Java Practices > Home
  • 原文地址:https://www.cnblogs.com/ChevisZhang/p/13221663.html
Copyright © 2020-2023  润新知