python库skimage 绘制二值图像的凸壳(convex hull)

Posted 我坚信阳光灿烂

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python库skimage 绘制二值图像的凸壳(convex hull)相关的知识,希望对你有一定的参考价值。

二值图像的凸壳指的是包围输入二值图像白色区域的最小的凸多边形的像素集合。

skimage中的函数

from skimage.morphology import convex_hull_image
chull = convex_hull_image(image)

完整代码:

"""
===========
Convex Hull
===========

The convex hull of a binary image is the set of pixels included in the
smallest convex polygon that surround all white pixels in the input.

A good overview of the algorithm is given on `Steve Eddin‘s blog
<http://blogs.mathworks.com/steve/2011/10/04/binary-image-convex-hull-algorithm-notes/>`__.

"""

import matplotlib.pyplot as plt

from skimage.morphology import convex_hull_image
from skimage import data, img_as_float
from skimage.util import invert

# The original image is inverted as the object must be white.
image = invert(data.horse())

chull = convex_hull_image(image)

fig, axes = plt.subplots(1, 2, figsize=(8, 4))
ax = axes.ravel()

ax[0].set_title(‘Original picture‘)
ax[0].imshow(image, cmap=plt.cm.gray)
ax[0].set_axis_off()

ax[1].set_title(‘Transformed picture‘)
ax[1].imshow(chull, cmap=plt.cm.gray)
ax[1].set_axis_off()

plt.tight_layout()
plt.show()

######################################################################
# We prepare a second plot to show the difference.
#

chull_diff = img_as_float(chull.copy())
chull_diff[image] = 2

fig, ax = plt.subplots()
ax.imshow(chull_diff, cmap=plt.cm.gray)
ax.set_title(‘Difference‘)
plt.show()

实验输出

技术图片
技术图片

以上是关于python库skimage 绘制二值图像的凸壳(convex hull)的主要内容,如果未能解决你的问题,请参考以下文章

『Python』skimage图像处理_旋转图像

scipy.spatial 中的凸壳例程给了我原来的一组点

python库skimage 实现图像直方图全局均衡化局部均衡化

python的skimage库 图像色彩空间转换 RGB到灰度;RGB到HSV

图像处理库Skimage安装与使用

python库skimage 将针对灰度图像的滤波器用于RGB图像 逐通道滤波;转换为HSV图像滤波