类 PCTSignatures
- java.lang.Object
-
- org.opencv.core.Algorithm
-
- org.opencv.xfeatures2d.PCTSignatures
-
public class PCTSignatures extends Algorithm
该类实现了 CITE: KrulisLS16 中描述的 PCT(位置-颜色-纹理)签名提取。该算法分为特征采样器和聚类器。特征采样器在给定坐标集上生成样本。然后聚类器使用 k-means 算法生成这些样本的簇。最终的簇集是输入图像的签名。签名是 SIGNATURE_DIMENSION 维点的数组。使用的维度是:权重、x、y 位置;lab 颜色、对比度、熵。CITE: KrulisLS16 CITE: BeecksUS10
-
-
构造函数摘要
构造函数 修饰符 构造函数 描述 保护PCTSignatures(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-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- 初始聚类种子数量。必须小于或等于 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-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- 自动生成
-
-