类 PCTSignatures
- java.lang.Object
-
- org.opencv.core.Algorithm
-
- org.opencv.xfeatures2d.PCTSignatures
-
public class PCTSignatures extends Algorithm
实现 PCT (位置-颜色-纹理) 签名提取的类,如 CITE: KrulisLS16 中所述。该算法分为特征采样器和聚类器。特征采样器在给定坐标集处生成样本。然后,聚类器使用 k-means 算法对这些样本生成聚类。由此产生的聚类集是输入图像的签名。签名是由 SIGNATURE_DIMENSION 维点组成的数组。使用的维度包括:权重、x、y 位置;lab 颜色、对比度、熵。CITE: KrulisLS16 CITE: BeecksUS10
-
-
构造函数摘要
构造函数 修饰符 构造函数 描述 保护PCTSignatures(long addr)
-
方法摘要
所有方法 静态方法 实例方法 具体方法 修饰符和类型 方法 描述 静态 PCTSignatures__fromPtr__(long addr)voidcomputeSignature(Mat image, Mat signature)计算给定图像的签名。voidcomputeSignatures(java.util.List<Mat> images, java.util.List<Mat> signatures)并行计算多个图像的签名。静态 PCTSignaturescreate()使用采样点和种子计数创建 PCTSignatures 算法。静态 PCTSignaturescreate(int initSampleCount)使用采样点和种子计数创建 PCTSignatures 算法。静态 PCTSignaturescreate(int initSampleCount, int initSeedCount)使用采样点和种子计数创建 PCTSignatures 算法。静态 PCTSignaturescreate(int initSampleCount, int initSeedCount, int pointDistribution)使用采样点和种子计数创建 PCTSignatures 算法。静态 PCTSignaturescreate(MatOfPoint2f initSamplingPoints, int initSeedCount)使用预生成的采样点和聚类种子数创建 PCTSignatures 算法。静态 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)在源图像中绘制签名并输出结果。static voidgenerateInitPoints(MatOfPoint2f initPoints, int count, int pointDistribution)根据选定的点分布生成初始采样点。intgetClusterMinSize()此参数乘以迭代次数,得到聚类大小的下限。intgetDistanceFunction()k-means 中用于测量两点之间距离的距离函数选择器。floatgetDropThreshold()在 k-means 中,移除权重小于或等于给定阈值的质心。intgetGrayscaleBits()灰度位图的颜色分辨率,以分配的位数表示(即,值为 4 表示使用了 16 级灰度)。intgetInitSeedCount()k-means 算法的初始种子数(初始聚类数)。MatOfIntgetInitSeedIndexes()k-means 算法的初始种子(初始聚类数)。intgetIterationCount()k-means 聚类的迭代次数。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-means 中用于测量两点之间距离的距离函数选择器。voidsetDropThreshold(float dropThreshold)在 k-means 中,移除权重小于或等于给定阈值的质心。voidsetGrayscaleBits(int grayscaleBits)灰度位图的颜色分辨率,以分配的位数表示(即,值为 4 表示使用了 16 级灰度)。voidsetInitSeedIndexes(MatOfInt initSeedIndexes)k-means 算法的初始种子索引。voidsetIterationCount(int iterationCount)k-means 聚类的迭代次数。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- 初始聚类种子的数量。必须小于或等于 initSampleCount。pointDistribution- 点的分布。默认值: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-means 算法的初始种子(初始聚类数)。- 返回
- 自动生成
-
setInitSeedIndexes
public void setInitSeedIndexes(MatOfInt initSeedIndexes)
k-means 算法的初始种子索引。- 参数
initSeedIndexes- 自动生成
-
getInitSeedCount
public int getInitSeedCount()
k-means 算法的初始种子数(初始聚类数)。- 返回
- 自动生成
-
getIterationCount
public int getIterationCount()
k-means 聚类的迭代次数。我们使用固定次数的迭代,因为修改后的聚类是修剪聚类(而不是迭代地优化 k 个聚类)。- 返回
- 自动生成
-
setIterationCount
public void setIterationCount(int iterationCount)
k-means 聚类的迭代次数。我们使用固定次数的迭代,因为修改后的聚类是修剪聚类(而不是迭代地优化 k 个聚类)。- 参数
iterationCount- 自动生成
-
getMaxClustersCount
public int getMaxClustersCount()
生成的最大聚类数。如果超过此数量,则按权重对聚类进行排序,并裁剪最小的聚类。- 返回
- 自动生成
-
setMaxClustersCount
public void setMaxClustersCount(int maxClustersCount)
生成的最大聚类数。如果超过此数量,则按权重对聚类进行排序,并裁剪最小的聚类。- 参数
maxClustersCount- 自动生成
-
getClusterMinSize
public int getClusterMinSize()
此参数乘以迭代次数,得到聚类大小的下限。包含点数少于指定限制的聚类将被丢弃质心,并将点重新分配。- 返回
- 自动生成
-
setClusterMinSize
public void setClusterMinSize(int clusterMinSize)
此参数乘以迭代次数,得到聚类大小的下限。包含点数少于指定限制的聚类将被丢弃质心,并将点重新分配。- 参数
clusterMinSize- 自动生成
-
getJoiningDistance
public float getJoiningDistance()
两个质心之间的阈值欧氏距离。如果两个聚类中心之间的距离小于此距离,则其中一个质心将被丢弃,并将点重新分配。- 返回
- 自动生成
-
setJoiningDistance
public void setJoiningDistance(float joiningDistance)
两个质心之间的阈值欧氏距离。如果两个聚类中心之间的距离小于此距离,则其中一个质心将被丢弃,并将点重新分配。- 参数
joiningDistance- 自动生成
-
getDropThreshold
public float getDropThreshold()
在 k-means 中,移除权重小于或等于给定阈值的质心。- 返回
- 自动生成
-
setDropThreshold
public void setDropThreshold(float dropThreshold)
在 k-means 中,移除权重小于或等于给定阈值的质心。- 参数
dropThreshold- 自动生成
-
getDistanceFunction
public int getDistanceFunction()
k-means 中用于测量两点之间距离的距离函数选择器。- 返回
- 自动生成
-
setDistanceFunction
public void setDistanceFunction(int distanceFunction)
k-means 中用于测量两点之间距离的距离函数选择器。可用:L0_25、L0_5、L1、L2、L2SQUARED、L5、L_INFINITY。- 参数
distanceFunction- 自动生成
-
-