Mahotas – 在给定区域获取标签边界
在本文中,我们将了解如何在 mahotas 中的给定区域内获取标签图像中标签的边框。为此,我们将使用来自核分割基准的荧光显微镜图像。我们可以在下面给出的命令的帮助下获取图像
mhotas.demos.nuclear_image()
下面是nuclear_image
为此,我们将使用 mahotas.labelled.border 方法
Syntax : mahotas.labelled.border(labelled_image, i, j)
Argument : It takes numpy.ndarray object i.e labelled image and two integer as argument
Note : A pixel is on the border if it has value i (or j)
Return : It returns numpy.ndarray object i.e labelled image with border label
注意: this 的输入应该是被标记的过滤图像对象
为了过滤图像,我们将获取图像对象 numpy.ndarray 并在索引的帮助下对其进行过滤,下面是执行此操作的命令
image = image[:, :, 0]
示例 1:
Python3
# importing required libraries
import mahotas
import numpy as np
from pylab import imshow, show
import os
# loading nuclear image
f = mahotas.demos.load('nuclear')
# setting filter to the image
f = f[:, :, 0]
# setting gaussian filter
f = mahotas.gaussian_filter(f, 4)
# setting threshold value
f = (f> f.mean())
# creating a labelled image
labelled, n_nucleus = mahotas.label(f)
# showing the labelled image
print("Labelled Image")
imshow(labelled)
show()
# getting border for label at given point
relabeled = mahotas.labelled.border(labelled, 0, 20)
# showing the image
print("Labels With borders at given point")
imshow(relabelled)
show()
Python3
# importing required libraries
import numpy as np
import mahotas
from pylab import imshow, show
# loading image
img = mahotas.imread('dog_image.png')
# filtering the imagwe
img = img[:, :, 0]
# setting gaussian filter
gaussian = mahotas.gaussian_filter(img, 15)
# setting threshold value
gaussian = (gaussian > gaussian.mean())
# creating a labelled image
labelled, n_nucleus = mahotas.label(gaussian)
print("Labelled Image")
# showing the gaussian filter
imshow(labelled)
show()
# getting border for label at given point
relabeled = mahotas.labelled.border(labelled, 1, 0)
# showing the image
print("Labels With borders at given point")
imshow(relabelled)
show()
输出 :
示例 2:
Python3
# importing required libraries
import numpy as np
import mahotas
from pylab import imshow, show
# loading image
img = mahotas.imread('dog_image.png')
# filtering the imagwe
img = img[:, :, 0]
# setting gaussian filter
gaussian = mahotas.gaussian_filter(img, 15)
# setting threshold value
gaussian = (gaussian > gaussian.mean())
# creating a labelled image
labelled, n_nucleus = mahotas.label(gaussian)
print("Labelled Image")
# showing the gaussian filter
imshow(labelled)
show()
# getting border for label at given point
relabeled = mahotas.labelled.border(labelled, 1, 0)
# showing the image
print("Labels With borders at given point")
imshow(relabelled)
show()
输出 :