PCTSignatures 类
- java.lang.Object
-
- org.opencv.core.Algorithm
-
- org.opencv.xfeatures2d.PCTSignatures
-
public class PCTSignatures extends Algorithm
实现 PCT(位置-颜色-纹理)特征提取的类,如 CITE: KrulisLS16 中所述。该算法分为特征采样器和聚类器。特征采样器在给定的坐标集合处生成样本。然后,聚类器使用 k 均值算法生成这些样本的聚类。生成的聚类集合是输入图像的特征向量。特征向量是 SIGNATURE_DIMENSION 维点的数组。使用的维度是:权重、x、y 位置;lab 颜色、对比度、熵。 CITE: KrulisLS16 CITE: BeecksUS10
-
-
构造函数摘要
构造函数 修饰符 构造函数 描述 protected
PCTSignatures(long addr)
-
方法摘要
所有方法 静态方法 实例方法 具体方法 修饰符和类型 方法 描述 static PCTSignatures
__fromPtr__(long addr)
void
computeSignature(Mat image, Mat signature)
计算给定图像的特征向量。void
computeSignatures(java.util.List<Mat> images, java.util.List<Mat> signatures)
并行计算多个图像的特征向量。static PCTSignatures
create()
使用样本数和种子数创建 PCTSignatures 算法。static PCTSignatures
create(int initSampleCount)
使用样本数和种子数创建 PCTSignatures 算法。static PCTSignatures
create(int initSampleCount, int initSeedCount)
使用样本数和种子数创建 PCTSignatures 算法。static PCTSignatures
create(int initSampleCount, int initSeedCount, int pointDistribution)
使用样本数和种子数创建 PCTSignatures 算法。static PCTSignatures
create(MatOfPoint2f initSamplingPoints, int initSeedCount)
使用预生成的采样点和聚类种子数创建 PCTSignatures 算法。static PCTSignatures
create(MatOfPoint2f initSamplingPoints, MatOfInt initClusterSeedIndexes)
使用预生成的采样点和聚类种子索引创建 PCTSignatures 算法。static void
drawSignature(Mat source, Mat signature, Mat result)
在源图像中绘制特征向量并输出结果。static void
drawSignature(Mat source, Mat signature, Mat result, float radiusToShorterSideRatio)
在源图像中绘制特征向量并输出结果。static void
drawSignature(Mat source, Mat signature, Mat result, float radiusToShorterSideRatio, int borderThickness)
在源图像中绘制特征向量并输出结果。protected void
finalize()
static void
generateInitPoints(MatOfPoint2f initPoints, int count, int pointDistribution)
根据选择的点分布生成初始采样点。int
getClusterMinSize()
此参数乘以迭代索引给出聚类大小的下限。int
getDistanceFunction()
用于测量 k 均值中两点之间距离的距离函数选择器。float
getDropThreshold()
删除 k 均值中权重小于或等于给定阈值的质心。int
getGrayscaleBits()
以分配的位数表示的灰度位图的颜色分辨率(即,值 4 表示使用 16 个灰度)。int
getInitSeedCount()
k 均值算法的初始种子数(初始聚类数)。MatOfInt
getInitSeedIndexes()
k 均值算法的初始种子(初始聚类数)。int
getIterationCount()
k 均值聚类的迭代次数。float
getJoiningDistance()
两个质心之间的阈值欧几里得距离。int
getMaxClustersCount()
生成的聚类最大数量。int
getSampleCount()
从图像中获取的初始样本数。MatOfPoint2f
getSamplingPoints()
从图像中获取的初始样本。float
getWeightA()
权重(乘法常数),线性拉伸特征空间的各个轴(x,y = 位置;L,a,b = CIE Lab 空间中的颜色;c = 对比度)。float
getWeightB()
权重(乘法常数),线性拉伸特征空间的各个轴(x,y = 位置;L,a,b = CIE Lab 空间中的颜色;c = 对比度)。float
getWeightContrast()
权重(乘法常数),线性拉伸特征空间的各个轴(x,y = 位置;L,a,b = CIE Lab 空间中的颜色;c = 对比度)。float
getWeightEntropy()
权重(乘法常数),线性拉伸特征空间的各个轴(x,y = 位置;L,a,b = CIE Lab 空间中的颜色;c = 对比度)。float
getWeightL()
权重(乘法常数),线性拉伸特征空间的各个轴(x,y = 位置;L,a,b = CIE Lab 空间中的颜色;c = 对比度)。float
getWeightX()
权重(乘法常数),线性拉伸特征空间的各个轴(x,y = 位置;L,a,b = CIE Lab 空间中的颜色;c = 对比度)。float
getWeightY()
权重(乘法常数),线性拉伸特征空间的各个轴(x,y = 位置;L,a,b = CIE Lab 空间中的颜色;c = 对比度)。int
getWindowRadius()
用于计算对比度和熵的纹理采样窗口的大小(窗口的中心始终位于相应特征样本的 x,y 坐标选择的像素中)。void
setClusterMinSize(int clusterMinSize)
此参数乘以迭代索引给出聚类大小的下限。void
setDistanceFunction(int distanceFunction)
用于测量 k 均值中两点之间距离的距离函数选择器。void
setDropThreshold(float dropThreshold)
删除 k 均值中权重小于或等于给定阈值的质心。void
setGrayscaleBits(int grayscaleBits)
以分配的位数表示的灰度位图的颜色分辨率(即,值 4 表示使用 16 个灰度)。void
setInitSeedIndexes(MatOfInt initSeedIndexes)
k 均值算法的初始种子索引。void
setIterationCount(int iterationCount)
k 均值聚类的迭代次数。void
setJoiningDistance(float joiningDistance)
两个质心之间的阈值欧几里得距离。void
setMaxClustersCount(int maxClustersCount)
生成的聚类最大数量。void
setSamplingPoints(MatOfPoint2f samplingPoints)
设置用于对输入图像进行采样的采样点。void
setTranslation(int idx, float value)
特征空间各个轴的平移。void
setTranslations(MatOfFloat translations)
特征空间各个轴的平移。void
setWeight(int idx, float value)
权重(乘法常数),线性拉伸特征空间的各个轴。void
setWeightA(float weight)
权重(乘法常数),线性拉伸特征空间的各个轴(x,y = 位置;L,a,b = CIE Lab 空间中的颜色;c = 对比度)。void
setWeightB(float weight)
权重(乘法常数),线性拉伸特征空间的各个轴(x,y = 位置;L,a,b = CIE Lab 空间中的颜色;c = 对比度)。void
setWeightContrast(float weight)
权重(乘法常数),线性拉伸特征空间的各个轴(x,y = 位置;L,a,b = CIE Lab 空间中的颜色;c = 对比度)。void
setWeightEntropy(float weight)
权重(乘法常数),线性拉伸特征空间的各个轴(x,y = 位置;L,a,b = CIE Lab 空间中的颜色;c = 对比度)。void
setWeightL(float weight)
权重(乘法常数),线性拉伸特征空间的各个轴(x,y = 位置;L,a,b = CIE Lab 空间中的颜色;c = 对比度)。void
setWeights(MatOfFloat weights)
权重(乘法常数),线性拉伸特征空间的各个轴。void
setWeightX(float weight)
权重(乘法常数),线性拉伸特征空间的各个轴(x,y = 位置;L,a,b = CIE Lab 空间中的颜色;c = 对比度)。void
setWeightY(float weight)
权重(乘法常数),线性拉伸特征空间的各个轴(x,y = 位置;L,a,b = CIE Lab 空间中的颜色;c = 对比度)。void
setWindowRadius(int radius)
用于计算对比度和熵的纹理采样窗口的大小(窗口的中心始终位于相应特征样本的 x,y 坐标选择的像素中)。-
继承自类 org.opencv.core.Algorithm的方法
clear,empty,getDefaultName,getNativeObjAddr,save
-
-
-
-
字段详情
-
L0_25
public static final int L0_25
- 另请参阅
- 常量字段值
-
L0_5
public static final int L0_5
- 另请参阅
- 常量字段值
-
L1
public static final int L1
- 另请参阅
- 常量字段值
-
L2
public static final int L2
- 另请参阅
- 常量字段值
-
L2SQUARED
public static final int L2SQUARED
- 另请参阅
- 常量字段值
-
L5
public static final int L5
- 另请参阅
- 常量字段值
-
L_INFINITY
public static final int L_INFINITY
- 另请参阅
- 常量字段值
-
UNIFORM
public static final int UNIFORM
- 另请参阅
- 常量字段值
-
REGULAR
public static final int REGULAR
- 另请参阅
- 常量字段值
-
NORMAL
public static final int NORMAL
- 另请参阅
- 常量字段值
-
MINUS
public static final int MINUS
- 另请参阅
- 常量字段值
-
GAUSSIAN
public static final int GAUSSIAN
- 另请参阅
- 常量字段值
-
HEURISTIC
public static final int HEURISTIC
- 另请参阅
- 常量字段值
-
-
方法详情
-
__fromPtr__
public static PCTSignatures __fromPtr__(long addr)
-
create
public static PCTSignatures create(int initSampleCount, int initSeedCount, int pointDistribution)
使用样本数和种子数创建PCTSignatures算法。它生成自己的采样点集和聚类种子索引。- 参数
initSampleCount
- 用于图像采样的点数。initSeedCount
- 初始聚类种子数。必须小于或等于initSampleCountpointDistribution
- 生成的点的分布。默认值:UNIFORM。可用值:UNIFORM, REGULAR, NORMAL。- 返回值
- 创建的算法。
-
create
public static PCTSignatures create(int initSampleCount, int initSeedCount)
使用样本数和种子数创建PCTSignatures算法。它生成自己的采样点集和聚类种子索引。- 参数
initSampleCount
- 用于图像采样的点数。initSeedCount
- 初始聚类种子数。必须小于或等于initSampleCount 可用值:UNIFORM, REGULAR, NORMAL。- 返回值
- 创建的算法。
-
create
public static PCTSignatures create(int initSampleCount)
使用样本数和种子数创建PCTSignatures算法。它生成自己的采样点集和聚类种子索引。- 参数
initSampleCount
- 用于图像采样的点数。必须小于或等于initSampleCount 可用值:UNIFORM, REGULAR, NORMAL。- 返回值
- 创建的算法。
-
create
public static PCTSignatures create()
使用样本数和种子数创建PCTSignatures算法。它生成自己的采样点集和聚类种子索引。必须小于或等于initSampleCount 可用值:UNIFORM, REGULAR, NORMAL。- 返回值
- 创建的算法。
-
create
public static PCTSignatures create(MatOfPoint2f initSamplingPoints, int initSeedCount)
使用预生成的采样点和聚类种子数创建PCTSignatures算法。它使用提供的采样点并生成自己的聚类种子索引。- 参数
initSamplingPoints
- 用于图像采样的采样点。initSeedCount
- 初始聚类种子数。必须小于或等于initSamplingPoints.size()。- 返回值
- 创建的算法。
-
create
public static PCTSignatures create(MatOfPoint2f initSamplingPoints, MatOfInt initClusterSeedIndexes)
使用预生成的采样点和聚类种子索引创建 PCTSignatures 算法。- 参数
initSamplingPoints
- 用于图像采样的采样点。initClusterSeedIndexes
- 初始聚类种子的索引。其大小必须小于或等于initSamplingPoints.size()。- 返回值
- 创建的算法。
-
computeSignature
public void computeSignature(Mat image, Mat signature)
计算给定图像的特征向量。- 参数
image
- CV_8U类型的输入图像。signature
- 计算出的输出特征向量。
-
computeSignatures
public void computeSignatures(java.util.List<Mat> images, java.util.List<Mat> signatures)
并行计算多个图像的特征向量。- 参数
images
- CV_8U类型的输入图像向量。signatures
- 计算出的特征向量向量。
-
drawSignature
public static void drawSignature(Mat source, Mat signature, Mat result, float radiusToShorterSideRatio, int borderThickness)
在源图像中绘制特征向量并输出结果。特征向量可视化为一个圆,其半径基于特征向量权重,颜色基于特征向量颜色。对比度和熵不进行可视化。- 参数
source
- 源图像。signature
- 图像特征向量。result
- 输出结果。radiusToShorterSideRatio
- 确定输出图像中特征向量的最大半径。borderThickness
- 可视化特征向量的边框粗细。
-
drawSignature
public static void drawSignature(Mat source, Mat signature, Mat result, float radiusToShorterSideRatio)
在源图像中绘制特征向量并输出结果。特征向量可视化为一个圆,其半径基于特征向量权重,颜色基于特征向量颜色。对比度和熵不进行可视化。- 参数
source
- 源图像。signature
- 图像特征向量。result
- 输出结果。radiusToShorterSideRatio
- 确定输出图像中特征向量的最大半径。
-
drawSignature
public static void drawSignature(Mat source, Mat signature, Mat result)
在源图像中绘制特征向量并输出结果。特征向量可视化为一个圆,其半径基于特征向量权重,颜色基于特征向量颜色。对比度和熵不进行可视化。- 参数
source
- 源图像。signature
- 图像特征向量。result
- 输出结果。
-
generateInitPoints
public static void generateInitPoints(MatOfPoint2f initPoints, int count, int pointDistribution)
根据选择的点分布生成初始采样点。- 参数
initPoints
- 将保存生成的点的输出向量。count
- 要生成的点数。pointDistribution
- 点分布选择器。可用值:UNIFORM, REGULAR, NORMAL。**注意:**生成的坐标范围为[0..1)
-
getSampleCount
public int getSampleCount()
从图像中获取的初始样本数。- 返回值
- 自动生成
-
getGrayscaleBits
public int getGrayscaleBits()
以分配的位表示的灰度位图的颜色分辨率(例如,值4表示使用16种灰度)。灰度位图用于计算对比度和熵值。- 返回值
- 自动生成
-
setGrayscaleBits
public void setGrayscaleBits(int grayscaleBits)
以分配的位表示的灰度位图的颜色分辨率(例如,值4表示使用16种灰度)。灰度位图用于计算对比度和熵值。- 参数
grayscaleBits
- 自动生成
-
getWindowRadius
public int getWindowRadius()
用于计算对比度和熵的纹理采样窗口的大小(窗口的中心始终位于相应特征样本的 x,y 坐标选择的像素中)。- 返回值
- 自动生成
-
setWindowRadius
public void setWindowRadius(int radius)
用于计算对比度和熵的纹理采样窗口的大小(窗口的中心始终位于相应特征样本的 x,y 坐标选择的像素中)。- 参数
radius
- 自动生成
-
getWeightX
public float getWeightX()
权重(乘法常数),线性拉伸特征空间的各个轴 (x,y = 位置; L,a,b = CIE Lab空间的颜色; c = 对比度; e = 熵)- 返回值
- 自动生成
-
setWeightX
public void setWeightX(float weight)
权重(乘法常数),线性拉伸特征空间的各个轴 (x,y = 位置; L,a,b = CIE Lab空间的颜色; c = 对比度; e = 熵)- 参数
weight
- 自动生成
-
getWeightY
public float getWeightY()
权重(乘法常数),线性拉伸特征空间的各个轴 (x,y = 位置; L,a,b = CIE Lab空间的颜色; c = 对比度; e = 熵)- 返回值
- 自动生成
-
setWeightY
public void setWeightY(float weight)
权重(乘法常数),线性拉伸特征空间的各个轴 (x,y = 位置; L,a,b = CIE Lab空间的颜色; c = 对比度; e = 熵)- 参数
weight
- 自动生成
-
getWeightL
public float getWeightL()
权重(乘法常数),线性拉伸特征空间的各个轴 (x,y = 位置; L,a,b = CIE Lab空间的颜色; c = 对比度; e = 熵)- 返回值
- 自动生成
-
setWeightL
public void setWeightL(float weight)
权重(乘法常数),线性拉伸特征空间的各个轴 (x,y = 位置; L,a,b = CIE Lab空间的颜色; c = 对比度; e = 熵)- 参数
weight
- 自动生成
-
getWeightA
public float getWeightA()
权重(乘法常数),线性拉伸特征空间的各个轴 (x,y = 位置; L,a,b = CIE Lab空间的颜色; c = 对比度; e = 熵)- 返回值
- 自动生成
-
setWeightA
public void setWeightA(float weight)
权重(乘法常数),线性拉伸特征空间的各个轴 (x,y = 位置; L,a,b = CIE Lab空间的颜色; c = 对比度; e = 熵)- 参数
weight
- 自动生成
-
getWeightB
public float getWeightB()
权重(乘法常数),线性拉伸特征空间的各个轴 (x,y = 位置; L,a,b = CIE Lab空间的颜色; c = 对比度; e = 熵)- 返回值
- 自动生成
-
setWeightB
public void setWeightB(float weight)
权重(乘法常数),线性拉伸特征空间的各个轴 (x,y = 位置; L,a,b = CIE Lab空间的颜色; c = 对比度; e = 熵)- 参数
weight
- 自动生成
-
getWeightContrast
public float getWeightContrast()
权重(乘法常数),线性拉伸特征空间的各个轴 (x,y = 位置; L,a,b = CIE Lab空间的颜色; c = 对比度; e = 熵)- 返回值
- 自动生成
-
setWeightContrast
public void setWeightContrast(float weight)
权重(乘法常数),线性拉伸特征空间的各个轴 (x,y = 位置; L,a,b = CIE Lab空间的颜色; c = 对比度; e = 熵)- 参数
weight
- 自动生成
-
getWeightEntropy
public float getWeightEntropy()
权重(乘法常数),线性拉伸特征空间的各个轴 (x,y = 位置; L,a,b = CIE Lab空间的颜色; c = 对比度; e = 熵)- 返回值
- 自动生成
-
setWeightEntropy
public void setWeightEntropy(float weight)
权重(乘法常数),线性拉伸特征空间的各个轴 (x,y = 位置; L,a,b = CIE Lab空间的颜色; c = 对比度; e = 熵)- 参数
weight
- 自动生成
-
getSamplingPoints
public MatOfPoint2f getSamplingPoints()
从图像中获取的初始样本。这些采样特征成为聚类的输入。- 返回值
- 自动生成
-
setWeight
public void setWeight(int idx, float value)
权重(乘法常数),线性拉伸特征空间的各个轴。- 参数
idx
- 权重的IDvalue
- 权重的值 **注意:**WEIGHT_IDX = 0; X_IDX = 1; Y_IDX = 2; L_IDX = 3; A_IDX = 4; B_IDX = 5; CONTRAST_IDX = 6; ENTROPY_IDX = 7;
-
setWeights
public void setWeights(MatOfFloat weights)
权重(乘法常数),线性拉伸特征空间的各个轴。- 参数
weights
- 所有权重的值。 **注意:**WEIGHT_IDX = 0; X_IDX = 1; Y_IDX = 2; L_IDX = 3; A_IDX = 4; B_IDX = 5; CONTRAST_IDX = 6; ENTROPY_IDX = 7;
-
setTranslation
public void setTranslation(int idx, float value)
特征空间各个轴的平移。- 参数
idx
- 平移的IDvalue
- 平移的值 **注意:**WEIGHT_IDX = 0; X_IDX = 1; Y_IDX = 2; L_IDX = 3; A_IDX = 4; B_IDX = 5; CONTRAST_IDX = 6; ENTROPY_IDX = 7;
-
setTranslations
public void setTranslations(MatOfFloat translations)
特征空间各个轴的平移。- 参数
translations
- 所有平移的值。 **注意:**WEIGHT_IDX = 0; X_IDX = 1; Y_IDX = 2; L_IDX = 3; A_IDX = 4; B_IDX = 5; CONTRAST_IDX = 6; ENTROPY_IDX = 7;
-
setSamplingPoints
public void setSamplingPoints(MatOfPoint2f samplingPoints)
设置用于对输入图像进行采样的采样点。- 参数
samplingPoints
- 范围在[0..1)内的采样点向量 **注意:**采样点数必须大于或等于聚类种子数。
-
getInitSeedIndexes
public MatOfInt getInitSeedIndexes()
k 均值算法的初始种子(初始聚类数)。- 返回值
- 自动生成
-
setInitSeedIndexes
public void setInitSeedIndexes(MatOfInt initSeedIndexes)
k 均值算法的初始种子索引。- 参数
initSeedIndexes
- 自动生成
-
getInitSeedCount
public int getInitSeedCount()
k 均值算法的初始种子数(初始聚类数)。- 返回值
- 自动生成
-
getIterationCount
public int getIterationCount()
k均值聚类的迭代次数。我们使用固定的迭代次数,因为修改后的聚类正在修剪聚类(不是迭代地细化k个聚类)。- 返回值
- 自动生成
-
setIterationCount
public void setIterationCount(int iterationCount)
k均值聚类的迭代次数。我们使用固定的迭代次数,因为修改后的聚类正在修剪聚类(不是迭代地细化k个聚类)。- 参数
iterationCount
- 自动生成
-
getMaxClustersCount
public int getMaxClustersCount()
生成的聚类最大数量。如果超过此数量,则按其权重对聚类进行排序,并裁剪最小的聚类。- 返回值
- 自动生成
-
setMaxClustersCount
public void setMaxClustersCount(int maxClustersCount)
生成的聚类最大数量。如果超过此数量,则按其权重对聚类进行排序,并裁剪最小的聚类。- 参数
maxClustersCount
- 自动生成
-
getClusterMinSize
public int getClusterMinSize()
setClusterMinSize- 返回值
- 自动生成
-
此参数乘以迭代索引给出聚类大小的下限。包含少于限制指定的点的聚类将被忽略其质心,并且点将被重新分配。
public void setClusterMinSize(int clusterMinSize)
setClusterMinSize- 参数
clusterMinSize
- 自动生成
-
getJoiningDistance
public float getJoiningDistance()
两个质心之间的阈值欧几里得距离。如果两个聚类中心之间的距离小于此距离,则忽略其中一个质心,并重新分配点。- 返回值
- 自动生成
-
setJoiningDistance
public void setJoiningDistance(float joiningDistance)
两个质心之间的阈值欧几里得距离。如果两个聚类中心之间的距离小于此距离,则忽略其中一个质心,并重新分配点。- 参数
joiningDistance
- 自动生成
-
getDropThreshold
public float getDropThreshold()
删除 k 均值中权重小于或等于给定阈值的质心。- 返回值
- 自动生成
-
setDropThreshold
public void setDropThreshold(float dropThreshold)
删除 k 均值中权重小于或等于给定阈值的质心。- 参数
dropThreshold
- 自动生成
-
getDistanceFunction
public int getDistanceFunction()
用于测量 k 均值中两点之间距离的距离函数选择器。- 返回值
- 自动生成
-
setDistanceFunction
public void setDistanceFunction(int distanceFunction)
k-means算法中用于测量两点之间距离的距离函数选择器。可用选项:L0_25, L0_5, L1, L2, L2SQUARED, L5, L_INFINITY。- 参数
distanceFunction
- 自动生成
-
-