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
-
-
构造函数摘要
构造函数 修饰符 构造函数 描述 protectedPCTSignatures(long addr)
-
方法摘要
所有方法 静态方法 实例方法 具体方法 修饰符和类型 方法 描述 static PCTSignatures__fromPtr__(long addr)voidcomputeSignature(Mat image, Mat signature)计算给定图像的特征向量。voidcomputeSignatures(java.util.List<Mat> images, java.util.List<Mat> signatures)并行计算多个图像的特征向量。static PCTSignaturescreate()使用样本数和种子数创建 PCTSignatures 算法。static PCTSignaturescreate(int initSampleCount)使用样本数和种子数创建 PCTSignatures 算法。static PCTSignaturescreate(int initSampleCount, int initSeedCount)使用样本数和种子数创建 PCTSignatures 算法。static PCTSignaturescreate(int initSampleCount, int initSeedCount, int pointDistribution)使用样本数和种子数创建 PCTSignatures 算法。static PCTSignaturescreate(MatOfPoint2f initSamplingPoints, int initSeedCount)使用预生成的采样点和聚类种子数创建 PCTSignatures 算法。static PCTSignaturescreate(MatOfPoint2f initSamplingPoints, MatOfInt initClusterSeedIndexes)使用预生成的采样点和聚类种子索引创建 PCTSignatures 算法。static voiddrawSignature(Mat source, Mat signature, Mat result)在源图像中绘制特征向量并输出结果。static voiddrawSignature(Mat source, Mat signature, Mat result, float radiusToShorterSideRatio)在源图像中绘制特征向量并输出结果。static voiddrawSignature(Mat source, Mat signature, Mat result, float radiusToShorterSideRatio, int borderThickness)在源图像中绘制特征向量并输出结果。protected voidfinalize()static voidgenerateInitPoints(MatOfPoint2f initPoints, int count, int pointDistribution)根据选择的点分布生成初始采样点。intgetClusterMinSize()此参数乘以迭代索引给出聚类大小的下限。intgetDistanceFunction()用于测量 k 均值中两点之间距离的距离函数选择器。floatgetDropThreshold()删除 k 均值中权重小于或等于给定阈值的质心。intgetGrayscaleBits()以分配的位数表示的灰度位图的颜色分辨率(即,值 4 表示使用 16 个灰度)。intgetInitSeedCount()k 均值算法的初始种子数(初始聚类数)。MatOfIntgetInitSeedIndexes()k 均值算法的初始种子(初始聚类数)。intgetIterationCount()k 均值聚类的迭代次数。floatgetJoiningDistance()两个质心之间的阈值欧几里得距离。intgetMaxClustersCount()生成的聚类最大数量。intgetSampleCount()从图像中获取的初始样本数。MatOfPoint2fgetSamplingPoints()从图像中获取的初始样本。floatgetWeightA()权重(乘法常数),线性拉伸特征空间的各个轴(x,y = 位置;L,a,b = CIE Lab 空间中的颜色;c = 对比度)。floatgetWeightB()权重(乘法常数),线性拉伸特征空间的各个轴(x,y = 位置;L,a,b = CIE Lab 空间中的颜色;c = 对比度)。floatgetWeightContrast()权重(乘法常数),线性拉伸特征空间的各个轴(x,y = 位置;L,a,b = CIE Lab 空间中的颜色;c = 对比度)。floatgetWeightEntropy()权重(乘法常数),线性拉伸特征空间的各个轴(x,y = 位置;L,a,b = CIE Lab 空间中的颜色;c = 对比度)。floatgetWeightL()权重(乘法常数),线性拉伸特征空间的各个轴(x,y = 位置;L,a,b = CIE Lab 空间中的颜色;c = 对比度)。floatgetWeightX()权重(乘法常数),线性拉伸特征空间的各个轴(x,y = 位置;L,a,b = CIE Lab 空间中的颜色;c = 对比度)。floatgetWeightY()权重(乘法常数),线性拉伸特征空间的各个轴(x,y = 位置;L,a,b = CIE Lab 空间中的颜色;c = 对比度)。intgetWindowRadius()用于计算对比度和熵的纹理采样窗口的大小(窗口的中心始终位于相应特征样本的 x,y 坐标选择的像素中)。voidsetClusterMinSize(int clusterMinSize)此参数乘以迭代索引给出聚类大小的下限。voidsetDistanceFunction(int distanceFunction)用于测量 k 均值中两点之间距离的距离函数选择器。voidsetDropThreshold(float dropThreshold)删除 k 均值中权重小于或等于给定阈值的质心。voidsetGrayscaleBits(int grayscaleBits)以分配的位数表示的灰度位图的颜色分辨率(即,值 4 表示使用 16 个灰度)。voidsetInitSeedIndexes(MatOfInt initSeedIndexes)k 均值算法的初始种子索引。voidsetIterationCount(int iterationCount)k 均值聚类的迭代次数。voidsetJoiningDistance(float joiningDistance)两个质心之间的阈值欧几里得距离。voidsetMaxClustersCount(int maxClustersCount)生成的聚类最大数量。voidsetSamplingPoints(MatOfPoint2f samplingPoints)设置用于对输入图像进行采样的采样点。voidsetTranslation(int idx, float value)特征空间各个轴的平移。voidsetTranslations(MatOfFloat translations)特征空间各个轴的平移。voidsetWeight(int idx, float value)权重(乘法常数),线性拉伸特征空间的各个轴。voidsetWeightA(float weight)权重(乘法常数),线性拉伸特征空间的各个轴(x,y = 位置;L,a,b = CIE Lab 空间中的颜色;c = 对比度)。voidsetWeightB(float weight)权重(乘法常数),线性拉伸特征空间的各个轴(x,y = 位置;L,a,b = CIE Lab 空间中的颜色;c = 对比度)。voidsetWeightContrast(float weight)权重(乘法常数),线性拉伸特征空间的各个轴(x,y = 位置;L,a,b = CIE Lab 空间中的颜色;c = 对比度)。voidsetWeightEntropy(float weight)权重(乘法常数),线性拉伸特征空间的各个轴(x,y = 位置;L,a,b = CIE Lab 空间中的颜色;c = 对比度)。voidsetWeightL(float weight)权重(乘法常数),线性拉伸特征空间的各个轴(x,y = 位置;L,a,b = CIE Lab 空间中的颜色;c = 对比度)。voidsetWeights(MatOfFloat weights)权重(乘法常数),线性拉伸特征空间的各个轴。voidsetWeightX(float weight)权重(乘法常数),线性拉伸特征空间的各个轴(x,y = 位置;L,a,b = CIE Lab 空间中的颜色;c = 对比度)。voidsetWeightY(float weight)权重(乘法常数),线性拉伸特征空间的各个轴(x,y = 位置;L,a,b = CIE Lab 空间中的颜色;c = 对比度)。voidsetWindowRadius(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- 自动生成
-
-