python类connectedComponents()的实例源码

awatershed_plg.py 文件源码 项目:opencv-plgs 作者: Image-Py 项目源码 文件源码 阅读 25 收藏 0 点赞 0 评论 0
def run(self, ips, snap, img, para = None):
        a, msk = cv2.connectedComponents(ips.get_msk().astype(np.uint8))
        msk = cv2.watershed(img, msk)==-1
        img //= 2
        img[msk] = 255
SLIC_merge_superpixels_parallel.py 文件源码 项目:SLIC_cityscapes 作者: wpqmanu 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
def parallel_processing(index,superpixel_data,superpixel_images,place_to_save):
    print index
    current_superpixel_data = cPickle.load(open(superpixel_data[index], "rb"))
    to_be_saved_file_name=superpixel_data[index].split('/')[-1][:-11]+'_merged.png'
    to_be_saved_data_name = superpixel_data[index].split('/')[-1][:-11] + '_merged.dat'

    # statisticst
    num_superpixels=len(current_superpixel_data[0])
    superpixel_labels=current_superpixel_data[1]

    # find unique labels
    unique_labels=find_unique_labels(current_superpixel_data)

    # iterate: assign updated labels for all superpixels
    return_map=assign_updated_labels(num_superpixels,current_superpixel_data,unique_labels)

    # plt.imshow(current_superpixel_data[1])
    # plt.show()


    print "Finding connected component for "+str(index)+' '+superpixel_data[index].split('/')[-1]

    new_superpixel_label=0
    chosen_label_values=[]
    final_map=np.ones((1024,2048))*(num_superpixels+10)
    for index_unique_label,unique_label in enumerate(unique_labels):
        current_unique_label_layer=return_map==index_unique_label
        current_unique_label_layer=current_unique_label_layer.astype(np.uint8)

        current_unique_label_layer_connected_component=cv2.connectedComponents(current_unique_label_layer, connectivity=8)
        total_connected_components=current_unique_label_layer_connected_component[0]
        # plt.imshow(current_unique_label_layer_connected_component[1])
        # plt.show()
        for index_connected_component in range(1,total_connected_components):
            # chosen_label_value=np.random.choice(label_array)
            final_map[current_unique_label_layer_connected_component[1]==index_connected_component]=new_superpixel_label
            # label_array.remove(chosen_label_value)
            chosen_label_values.append(new_superpixel_label)
            new_superpixel_label=new_superpixel_label+1


    # render
    my_palette=palette(new_superpixel_label)
    result_img = Image.fromarray(final_map.astype(np.uint8)).convert('P')
    result_img.putpalette(my_palette)
    result_img.save(os.path.join(place_to_save, 'visualization', to_be_saved_file_name))


    # save data
    final_superpixel_data=current_superpixel_data+(final_map,unique_labels,chosen_label_values)
    cPickle.dump(final_superpixel_data, open(os.path.join(place_to_save, 'data', to_be_saved_data_name), "w+"))


问题


面经


文章

微信
公众号

扫码关注公众号