mahotas作为一种计算机视觉方向方面的python库,其不仅包含了上百种视觉方向的机器学习的算法,同时还可以操作python的numpy数组,使得数据处理,很方便。
虽然mahotas作为一种新型的库,其每个月都在更新,但是其接口是很稳定的,我们的学习更加的简单方便。
mahotas.
as_rgb
(r, g, b):as_rgb是一个将各个色彩融合在一起的一个接口,其中的r,g,b分别是各个色彩的通道,每个图像都有一个或多个颜色通道,图像中默认的颜色通道数取决于其颜色模式,即一个图像的颜色模式将决定其颜色通道的数量。例如,CMYK图像默认有4个通道,分别为青色、洋红、黄色、黑色。在默认情况下,位图模式、灰度、双色调和索引颜色图像只有一个通道。RGB和Lab图像有3个通道,CMYK图像有4个通道。
参数:
r,g,b : 可以是类数组对象,或者是整数等,只要保证所有的参数一致。
返回:
rgb : n维数组
mahotas.
bbox
(img, border={0}, as_slice={False})
as_slice默认是False,当期为false的时候会返回每一个维度,当其为true的时候会返回一个切片,此时就根据border来定的。
参数:img :数组
输出:imag所有的非零值,当as_slice为false的时候
一个切片当as_slice为true的时候。
mahotas.
border
(labeled, i, j, Bc={3x3 cross}, out={np.zeros(labeled.shape, bool)}, always_return=True)
参数:
i:整数
j: 整数
Bc:结构元素
out:按照labeled的新的元素,如果bool为None,那就会重新创建一个新的数组。
always_return:bool值,如果为false的话,当没有像素点在边界上面的话,就会返回一个none,如果为true,无论是什么都会返回一个数组。
mahotas.
borders
(labeled, Bc={3x3 cross}, out={np.zeros(labeled.shape, bool)})
计算边界上面的像素点,如果像素点i!=j的话。
参数:
labeled:整数类型的数组
Bc:结构元素,可以不选择。
out:输出的控制
输出:
一个包含bool值的数组
mahotas.
bwperim
(bw, n=4)
查找像素点中的周长,默认值为4,可以设定为8.
参数:
bw:一个黑白图片的数组(必须转换为黑白图像)
n: 一个整数
输出:
一个布尔值数组
mahotas.
cdilate
(f, g, Bc={3x3 cross}, n=1)
根据f、g和Bc通过迭代创建一个y。
参数:
f:二进制图像
g: 调节图像
structure:结构元素
n:迭代次数
输出:
一个图像
mahotas.
center_of_mass
(img,labels = None )
返回质心,如果labels为None则返回一维数组,否则则返回一个二维数组。
参数:
img:一个图像
labels:标签
输出:
一个质心数组
mahotas.
cerode
(f,g,Bc = {3x3 cross},out = {np.empty_as(A)} )
条件侵蚀,和cdilate是相对的。
mahotas.
close
(f,Bc = {3x3 cross},out = {np.empty_like(f)} )
条件关闭,我们根据条件关闭结构元素范围的方块。
参数:
f:条件数组
Bc: 结构元素
out:输出操作
输出:
一个图像
mahotas.
close_holes
(ref, Bc=None)
关闭孔。
参数:
ref:一个数组,应该是一个二进制数组
Bc:结构元素
输出:
一个图像
mahotas.
convolve
(f, weights, mode='reflect', cval=0.0, out={new array})
根据f和权重的卷积
使用双重卷积防止下漏或上溢,结果会一律转化为f类型。
参数:
f:数组,任何维度的都可以
权重:数组,权重过滤器,如果和f不一致,会被转化。
mode:如何处理边界
cval:默认是double可以选择
out:输出数组。与f一致
输出:
卷积,与f一直的数组
mahotas.
convolve1d
(f, weights, axis, mode='reflect', cval=0.0, out={new array})
沿着轴的卷积,其他的和convolve都一样。
mahotas.
croptobbox
(img, border=0)
将裁减的图像返回到图像的边框上面。
参数:
img:数组
border:边界
输出:
一个子图像
mahotas.
cwatershed
(surface, markers, Bc=None, return_lines=False) W, WL = cwatershed(surface, markers, Bc=None, return_lines=True)
计算输入表面上面的分水岭的变化
需要种子点
参数:
surface:数组
marker:数组
Bc:结构元素
return_line:可选,一个布尔值函数
输出:
W:区域图像
WL:行图像
mahotas.
daubechies
(f,code,inline = False )
小波变换
如果图像的尺寸为2的倍数这个功能更加的有效
参数:
f:2-D数组
code:str
输出:
一个新的单图像,当inline为false的时候,否则将新的结果写入原来的图像。
mahotas.
dilate
(A, Bc=None, out=None, output=None)
形态扩张,如果输入的A为布尔值的话,那么扩张就是二进制的,否则是灰度扩张。
参数:
A:输入的数组
Bc:结构元素
out:决定是否输出的是一个数组还是新建的一个数组。
输出:
一个扩张的数组
mahotas.
disk
(radius, dim=2)
返回维度和半径
参数:
radius:int,这里是返回的磁盘半径
dim:int可选,这里是维度
输出:
一个布尔型的数组
mahotas.
distance
(bw, metric='euclidean2')
计算图像变化的距离
计算的是像素点到背景的距离,如果没有背景的话就是无穷大的值。
参数:
bw:n维数组
metric:字符串str
输出:
n维数组
mahotas.
dog
(img, sigma1 = 2, thresh= None, just_filter = False)
运用高斯差计算边。
参数:
img:任何的2D数组
sigma:第一个高斯滤波器的sigma的值,第二个为第一个的1.001
乘数:得到sigma2的乘数
just_filter:布尔值,可以进行选择以及不选择。
输出:
n维数组
mahotas.
erode
(A,Bc = {3x3 cross},out = {np.empty_as(A)} )
形态侵蚀,参照dilate
mahotas.
euler
(f,n = 8 )
计算图像f的欧拉值
参数:
f:n维数组
n:数值
mode:如何处理边界
输出:
欧拉数
mahotas.
find
(f, template)
寻找与f一样的模板。
参数:
f:n维数组
template:n维数组
输出:
匹配的坐标点
mahotas.
fullhistogram
(img)
返回带有0,1..的直方图
参数:
img:无符号数组
输出:
hist:一个为np.dist32的数组
mahotas.
gaussian_filter
(array,sigma,order = 0,mode ='reflect',cval = 0。,out = {np.empty_like(array)} )
多维高斯滤波器
参数:
array:一个n维数组
sigma:高斯中的权值