这篇文章主要利用python去做一个边缘提取的例子。

效果展示

在这里插入图片描述

要求

  • python3
  • binary images(二值图)
  • python的opencv库; 如果没有可以直接 pip3 install opencv-python

代码

代码很简单,直接复制代码并且修改下文件路径,运行即可

#  -*- coding: utf-8 -*- 
import cv2
import os

def Edge_Extract(root):
    img_root = os.path.join(root,'img_masks')			# 修改为保存图像的文件名
    edge_root = os.path.join(root,'img_edge')			# 结果输出文件

    if not os.path.exists(edge_root):
        os.mkdir(edge_root)

    file_names = os.listdir(img_root)
    img_name = []

    for name in file_names:
        if not name.endswith('.png'):
            assert "This file %s is not PNG"%(name)
        img_name.append(os.path.join(img_root,name[:-4]+'.png'))

    index = 0
    for image in img_name:
        img = cv2.imread(image,0)
        cv2.imwrite(edge_root+'/'+file_names[index],cv2.Canny(img,30,100))
        index += 1
    return 0


if __name__ == '__main__':
    root = '/Data/Datasets/binary_mask_path/'	# 修改为你对应的文件路径
    Edge_Extract(root)

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐