📜  Mahotas – 图像的关闭过程

📅  最后修改于: 2022-05-13 01:55:44.120000             🧑  作者: Mango

Mahotas – 图像的关闭过程

在本文中,我们将了解如何在 mahotas 中对图像执行关闭操作。闭包是先执行膨胀操作,然后执行腐蚀操作的过程。它从获得的图像中消除了小孔,用于平滑轮廓和融合狭窄的断点。

在本教程中,我们将使用“luispedro”图像,下面是加载它的命令。

mahotas.demos.load('luispedro')

下面是 luispedro 图像

为了做到这一点,我们将使用 mahotas.morph.closemethod

注意:输入图像应被过滤或应加载为灰色

为了过滤图像,我们将获取图像对象 numpy.ndarray 并在索引的帮助下对其进行过滤,下面是执行此操作的命令

image = image[:, :, 0]

下面是实现

Python3
# importing required libraries
import mahotas
import mahotas.demos
from pylab import gray, imshow, show
import numpy as np
  
# loading image
luispedro = mahotas.demos.load('luispedro')
  
# filtering image
luispedro = luispedro.max(2)
  
# otsu method
T_otsu = mahotas.otsu(luispedro)
   
# image values should be greater than otsu value
img = luispedro > T_otsu
  
print("Image threshold using Otsu Method")
  
# showing image
imshow(img)
show()
 
# closing image
new_img = mahotas.morph.close(img)
  
# showing new image
print("Closed Image")
imshow(new_img)
show()


Python3
# importing required libraries
import mahotas
import numpy as np
import matplotlib.pyplot as plt
import os
  
# loading image
img = mahotas.imread('dog_image.png')
       
# setting filter to the image
img = img[:, :, 0]
 
# otsu method
T_otsu = mahotas.otsu(img)
  
 
# image values should be greater than otsu value
img = img > T_otsu
 
print("Image threshold using Otsu Method")
 
# showing image
imshow(img)
show()
 
# closing image
new_img = mahotas.morph.close(img)
  
# showing new image
print("Closed Image")
imshow(new_img)
show()


输出 :

Image threshold using Otsu Method 

Closed Image

另一个例子

Python3

# importing required libraries
import mahotas
import numpy as np
import matplotlib.pyplot as plt
import os
  
# loading image
img = mahotas.imread('dog_image.png')
       
# setting filter to the image
img = img[:, :, 0]
 
# otsu method
T_otsu = mahotas.otsu(img)
  
 
# image values should be greater than otsu value
img = img > T_otsu
 
print("Image threshold using Otsu Method")
 
# showing image
imshow(img)
show()
 
# closing image
new_img = mahotas.morph.close(img)
  
# showing new image
print("Closed Image")
imshow(new_img)
show()

输出 :

Image threshold using Otsu Method 

Closed Image