python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python 图像分割

5行Python代码实现图像分割的步骤详解

作者:不脱发的程序猿

这篇文章主要介绍了5行Python代码实现图像分割的步骤详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

众所周知图像是由若干有意义的像素组成的,图像分割作为计算机视觉的基础,对具有现有目标和较精确边界的图像进行分割,实现在图像像素级别上的分类任务。

图像分割可分为语义分割和实例分割两类,区别如下:

图像分割通常应用如下所示:

本博客主要通过PixelLib模块帮助用户快速便捷实现图像分割。

1、环境部署

在进行项目设计前,需要安装所需的第三方库文件:TensorFlow、Pillow、OpenCV-Python、scikit-image和PixelLib,指令如下所示:

pip install tensorflow
pip install pillow
pip install opencv-python
pip install scikit-image
pip install pixellib

2、语义分割

PixelLib使用Deeplabv3+框架实现语义分割,在pascalvoc数据集上训练的Xception模型用于语义分割。

第1步:导入PixelLib模块,代码如下所示:

import pixellib
from 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 pixellib
from 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 图像分割内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文