时间:2021-05-22
众所周知图像是由若干有意义的像素组成的,图像分割作为计算机视觉的基础,对具有现有目标和较精确边界的图像进行分割,实现在图像像素级别上的分类任务。
图像分割可分为语义分割和实例分割两类,区别如下:
图像分割通常应用如下所示:
本博客主要通过PixelLib模块帮助用户快速便捷实现图像分割。
1、环境部署
在进行项目设计前,需要安装所需的第三方库文件:TensorFlow、Pillow、OpenCV-Python、scikit-image和PixelLib,指令如下所示:
pip install tensorflowpip install pillowpip install opencv-pythonpip install scikit-imagepip install pixellib2、语义分割
PixelLib使用Deeplabv3+框架实现语义分割,在pascalvoc数据集上训练的Xception模型用于语义分割。
第1步:导入PixelLib模块,代码如下所示:
import pixellibfrom pixellib.semantic import semantic_segmentation第2步:创建用于执行语义分割的类实例,代码如下所示:
segment_image = semantic_segmentation()第3步:调用load_pascalvoc_model()函数加载在Pascal voc上训练的Xception模型,代码如下所示:
segment_image.load_pascalvoc_model("deeplabv3_xception_tf_dim_ordering_tf_kernels.h5")第4步:调用segmentAsPascalvoc()函数对图像进行分割,并且分割采用pascalvoc的颜色格式进行。此函数有两个必选参数:
将路径替换为自己环境路径即可,代码如下所示:
segment_image.segmentAsPascalvoc("path_to_image", output_image_name = "path_to_output_image")上传图像,语义分割后效果如下所示:
也可以生成了带有分段叠加层的图像,只需要将segmentAsPascalvoc()函数的overlay属性设置为True,代码如下所示:
segment_image.segmentAsPascalvoc("sample1.jpg", output_image_name = "image_new.jpg", overlay = True)分段叠加层效果如下所示:
3、即时分割
PixelLib的实例分割基于MaskRCNN框架实现,也仅需5行Python代码实现。
第1步:导入PixelLib模块,代码如下所示:
import pixellibfrom pixellib.instance import instance_segmentation第2步:导入用于执行实例细分的类并创建该类的实例,代码如下所示:
segment_image = instance_segmentation()第3步:调用load_model()函数加载Mask RCNN模型以执行实例分割的代码,代码如下所示:
segment_image.load_model("mask_rcnn_coco.h5")第4步:调用segmentImage()函数对图像执行实例分割。此函数有两个必选参数:
将路径替换为自己环境路径即可,代码如下所示:
segment_image.segmentImage("path_to_image", output_image_name = "output_image_path")上传图像,即时分割后效果如下所示:
也可以生成分割蒙版边界框,只需要将show_bboxes()函数的overlay属性设置为True,代码如下所示:
segment_image.segmentImage("sample2.jpg", output_image_name = "image_new.jpg", show_bboxes = True)生成分割蒙版边界框效果如下所示:
到此这篇关于5行Python代码实现图像分割的步骤详解的文章就介绍到这了,更多相关Python 图像分割内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例为大家分享了python实现书法碑帖图片分割的具体代码,供大家参考,具体内容如下一、功能实现效果1、选择要分割的碑帖图片2、选择碑帖图像分割的行与列,本
实现步骤:1、通过水平投影对图形进行水平分割,获取每一行的图像;2、通过垂直投影对分割的每一行图像进行垂直分割,最终确定每一个字符的坐标位置,分割出每一个字符;
投影法多用于图像的阈值分割。闲话不多说,现用Python实现。上代码。importcv2importnumpyimg=cv2.imread('D:/0.jpg'
本文实例为大家分享了python实现按行分割文件的具体代码,供大家参考,具体内容如下#!/usr/bin/envpython#--*--coding:utf-8
实现思路通过背景建模的方法,对源图像中的动态人物前景进行分割,再将目标图像作为背景,进行合成操作,获得一个可用的合成影像。实现步骤如下。使用Background