基于python的数字图像处理,python图像处理实战 豆瓣

  基于python的数字图像处理,python图像处理实战 豆瓣

  本文主要介绍python数字图像处理中基本形态滤波实例的详细说明。有需要的朋友可以借鉴一下,希望能有所帮助。祝大家进步很大,早日升职加薪。

  00-1010简介1、膨胀)2、侵蚀)3、打开)4、关闭)5、白礼帽6、黑礼帽

  

目录

  对图像执行形态学变换。一般变换对象是灰度图像或二值图像,函数function放在形态学子模块中。

  

引言

  原理:一般操作二值图像。找到一个像素值为1的点,并将其所有相邻像素设置为该值。值1表示白色,值0表示黑色,因此扩展操作可以扩展白色值的范围并压缩黑色值的范围。通常用于扩展边缘或填充小孔。

  函数:skimage .形态学.稀释(image,selem=none)

  Selem表示结构元素,用于设置局部区域的形状和大小。

  从skimage导入数据

  导入skimage .形态学作为sm

  将matplotlib.pyplot作为plt导入

  img=data.checkerboard()

  DST1=sm。膨胀(IMG,sm。Square (5)) #扩展滤波由边长为5的正方形滤波器执行。

  DST2=sm。膨胀(IMG,sm。Square (15)) #扩展滤波由边长为15的正方形滤波器执行。

  plt.figure(形态学,figsize=(8,8))

  plt.subplot(131)

  plt.title(“原始图像”)

  plt.imshow(img,plt.cm.gray)

  plt.subplot(132)

  plt.title(“形态学图像”)

  plt.imshow(dst1,plt.cm.gray)

  plt.subplot(133)

  plt.title(“形态学图像”)

  plt.imshow(dst2,plt.cm.gray)

  使用边长为5或15的正方形滤镜对棋盘图片进行扩展,结果如下:

  可以看出,滤波器的大小对运算结果影响很大。一般设置为奇数。

  除了方形滤镜,还有一些其他形状的滤镜,如下所示:

  形态学. square:平方

  Morphology.disk:平面圆

  形态学. ball:球形

  形态学.立方体:立方体形状

  形态学. diamond:钻石形状

  Morphology.rectangle:矩形

  形态学. star: Star

  形态学.八角形:八角形

  形态学。八面体:八面体

  请注意,如果处理的图像是二进制图像(只有0和1),您可以调用:

  skim age . morphology . binary _ dilation(image,selem=None)

  使用此功能比处理灰度图像更快。

  

1、膨胀(dilation)

  函数:撇除.形态学.腐蚀(image,selem=none)

  Selem表示结构元素,用于设置局部区域的形状和大小。

  并且将值0扩展到相邻像素。放大黑色部分,缩小白色部分。它可以用来提取主干信息,去除毛刺和孤立像素。

  从skimage导入数据

  导入skimage .形态学作为sm

  将matplotlib.pyplot作为plt导入

  img=data.checkerboard()

  dst1=侵蚀面积(img,平方面积(5

  )) #用边长为5的正方形滤波器进行膨胀滤波

  dst2=sm.erosion(img,sm.square(25)) #用边长为25的正方形滤波器进行膨胀滤波

  plt.figure(morphology,figsize=(8,8))

  plt.subplot(131)

  plt.title(origin image)

  plt.imshow(img,plt.cm.gray)

  plt.subplot(132)

  plt.title(morphological image)

  plt.imshow(dst1,plt.cm.gray)

  plt.subplot(133)

  plt.title(morphological image)

  plt.imshow(dst2,plt.cm.gray)

  

  注意,如果处理图像为二值图像(只有0和1两个值),则可以调用:

  

skimage.morphology.binary_erosion(image,selem=None)

  

  用此函数比处理灰度图像要快。

  

  

3、开运算(opening)

  

函数:skimage.morphology.openning(image,selem=None)

  

  selem表示结构元素,用于设定局部区域的形状和大小。

  先腐蚀再膨胀,可以消除小物体或小斑块。

  

from skimage import io,color

  import skimage.morphology as sm

  import matplotlib.pyplot as plt

  img=color.rgb2gray(io.imread(d:/pic/mor.png))

  dst=sm.opening(img,sm.disk(9)) #用边长为9的圆形滤波器进行膨胀滤波

  plt.figure(morphology,figsize=(8,8))

  plt.subplot(121)

  plt.title(origin image)

  plt.imshow(img,plt.cm.gray)

  plt.axis(off)

  plt.subplot(122)

  plt.title(morphological image)

  plt.imshow(dst,plt.cm.gray)

  plt.axis(off)

  

  注意,如果处理图像为二值图像(只有0和1两个值),则可以调用:

  

skimage.morphology.binary_opening(image,selem=None)

  

  用此函数比处理灰度图像要快。

  

  

4、闭运算(closing)

  

函数:skimage.morphology.closing(image,selem=None)

  

  selem表示结构元素,用于设定局部区域的形状和大小。

  先膨胀再腐蚀,可用来填充孔洞。

  

from skimage import io,color

  import skimage.morphology as sm

  import matplotlib.pyplot as plt

  img=color.rgb2gray(io.imread(d:/pic/mor.png))

  dst=sm.closing(img,sm.disk(9)) #用边长为5的圆形滤波器进行膨胀滤波

  plt.figure(morphology,figsize=(8,8))

  plt.subplot(121)

  plt.title(origin image)

  plt.imshow(img,plt.cm.gray)

  plt.axis(off)

  plt.subplot(122)

  plt.title(morphological image)

  plt.imshow(dst,plt.cm.gray)

  plt.axis(off)

  

  注意,如果处理图像为二值图像(只有0和1两个值),则可以调用:

  

skimage.morphology.binary_closing(image,selem=None)

  

  用此函数比处理灰度图像要快。

  

  

5、白帽(white-tophat)

  

函数:skimage.morphology.white_tophat(image,selem=None)

  

  selem表示结构元素,用于设定局部区域的形状和大小。

  将原图像减去它的开运算值,返回比结构化元素小的白点

  

from skimage import io,color

  import skimage.morphology as sm

  import matplotlib.pyplot as plt

  img=color.rgb2gray(io.imread(d:/pic/mor.png))

  dst=sm.white_tophat(img,sm.square(21))

  plt.figure(morphology,figsize=(8,8))

  plt.subplot(121)

  plt.title(origin image)

  plt.imshow(img,plt.cm.gray)

  plt.axis(off)

  plt.subplot(122)

  plt.title(morphological image)

  plt.imshow(dst,plt.cm.gray)

  plt.axis(off)

  

  

  

6、黑帽(black-tophat)

  

函数:skimage.morphology.black_tophat(image,selem=None)

  

  selem表示结构元素,用于设定局部区域的形状和大小。

  将原图像减去它的闭运算值,返回比结构化元素小的黑点,且将这些黑点反色。

  

from skimage import io,color

  import skimage.morphology as sm

  import matplotlib.pyplot as plt

  img=color.rgb2gray(io.imread(d:/pic/mor.png))

  dst=sm.black_tophat(img,sm.square(21))

  plt.figure(morphology,figsize=(8,8))

  plt.subplot(121)

  plt.title(origin image)

  plt.imshow(img,plt.cm.gray)

  plt.axis(off)

  plt.subplot(122)

  plt.title(morphological image)

  plt.imshow(dst,plt.cm.gray)

  plt.axis(off)

  

  以上就是python数字图像处理之基本形态学滤波的详细内容,更多关于python数字图像形态学滤波的资料请关注盛行IT软件开发工作室其它相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: