// // This file is auto-generated. Please don't modify it! // #pragma once #ifdef __cplusplus //#import "opencv.hpp" #import "opencv2/xfeatures2d.hpp" #else #define CV_EXPORTS #endif #import #import "Algorithm.h" @class FloatVector; @class IntVector; @class Mat; @class Point2f; // C++: enum DistanceFunction (cv.xfeatures2d.PCTSignatures.DistanceFunction) typedef NS_ENUM(int, DistanceFunction) { PCTSignatures_L0_25 NS_SWIFT_NAME(L0_25) = 0, PCTSignatures_L0_5 NS_SWIFT_NAME(L0_5) = 1, PCTSignatures_L1 NS_SWIFT_NAME(L1) = 2, PCTSignatures_L2 NS_SWIFT_NAME(L2) = 3, PCTSignatures_L2SQUARED NS_SWIFT_NAME(L2SQUARED) = 4, PCTSignatures_L5 NS_SWIFT_NAME(L5) = 5, PCTSignatures_L_INFINITY NS_SWIFT_NAME(L_INFINITY) = 6 }; // C++: enum PointDistribution (cv.xfeatures2d.PCTSignatures.PointDistribution) typedef NS_ENUM(int, PointDistribution) { PCTSignatures_UNIFORM NS_SWIFT_NAME(UNIFORM) = 0, PCTSignatures_REGULAR NS_SWIFT_NAME(REGULAR) = 1, PCTSignatures_NORMAL NS_SWIFT_NAME(NORMAL) = 2 }; // C++: enum SimilarityFunction (cv.xfeatures2d.PCTSignatures.SimilarityFunction) typedef NS_ENUM(int, SimilarityFunction) { PCTSignatures_MINUS NS_SWIFT_NAME(MINUS) = 0, PCTSignatures_GAUSSIAN NS_SWIFT_NAME(GAUSSIAN) = 1, PCTSignatures_HEURISTIC NS_SWIFT_NAME(HEURISTIC) = 2 }; NS_ASSUME_NONNULL_BEGIN // C++: class PCTSignatures /** * Class implementing PCT (position-color-texture) signature extraction * as described in CITE: KrulisLS16. * The algorithm is divided to a feature sampler and a clusterizer. * Feature sampler produces samples at given set of coordinates. * Clusterizer then produces clusters of these samples using k-means algorithm. * Resulting set of clusters is the signature of the input image. * * A signature is an array of SIGNATURE_DIMENSION-dimensional points. * Used dimensions are: * weight, x, y position; lab color, contrast, entropy. * CITE: KrulisLS16 * CITE: BeecksUS10 * * Member of `Xfeatures2d` */ CV_EXPORTS @interface PCTSignatures : Algorithm #ifdef __cplusplus @property(readonly)cv::Ptr nativePtrPCTSignatures; #endif #ifdef __cplusplus - (instancetype)initWithNativePtr:(cv::Ptr)nativePtr; + (instancetype)fromNative:(cv::Ptr)nativePtr; #endif #pragma mark - Methods // // static Ptr_PCTSignatures cv::xfeatures2d::PCTSignatures::create(int initSampleCount = 2000, int initSeedCount = 400, int pointDistribution = 0) // /** * Creates PCTSignatures algorithm using sample and seed count. * It generates its own sets of sampling points and clusterization seed indexes. * @param initSampleCount Number of points used for image sampling. * @param initSeedCount Number of initial clusterization seeds. * Must be lower or equal to initSampleCount * @param pointDistribution Distribution of generated points. Default: UNIFORM. * Available: UNIFORM, REGULAR, NORMAL. * @return Created algorithm. */ + (PCTSignatures*)create:(int)initSampleCount initSeedCount:(int)initSeedCount pointDistribution:(int)pointDistribution NS_SWIFT_NAME(create(initSampleCount:initSeedCount:pointDistribution:)); /** * Creates PCTSignatures algorithm using sample and seed count. * It generates its own sets of sampling points and clusterization seed indexes. * @param initSampleCount Number of points used for image sampling. * @param initSeedCount Number of initial clusterization seeds. * Must be lower or equal to initSampleCount * Available: UNIFORM, REGULAR, NORMAL. * @return Created algorithm. */ + (PCTSignatures*)create:(int)initSampleCount initSeedCount:(int)initSeedCount NS_SWIFT_NAME(create(initSampleCount:initSeedCount:)); /** * Creates PCTSignatures algorithm using sample and seed count. * It generates its own sets of sampling points and clusterization seed indexes. * @param initSampleCount Number of points used for image sampling. * Must be lower or equal to initSampleCount * Available: UNIFORM, REGULAR, NORMAL. * @return Created algorithm. */ + (PCTSignatures*)create:(int)initSampleCount NS_SWIFT_NAME(create(initSampleCount:)); /** * Creates PCTSignatures algorithm using sample and seed count. * It generates its own sets of sampling points and clusterization seed indexes. * Must be lower or equal to initSampleCount * Available: UNIFORM, REGULAR, NORMAL. * @return Created algorithm. */ + (PCTSignatures*)create NS_SWIFT_NAME(create()); // // static Ptr_PCTSignatures cv::xfeatures2d::PCTSignatures::create(vector_Point2f initSamplingPoints, int initSeedCount) // /** * Creates PCTSignatures algorithm using pre-generated sampling points * and number of clusterization seeds. It uses the provided * sampling points and generates its own clusterization seed indexes. * @param initSamplingPoints Sampling points used in image sampling. * @param initSeedCount Number of initial clusterization seeds. * Must be lower or equal to initSamplingPoints.size(). * @return Created algorithm. */ + (PCTSignatures*)create2:(NSArray*)initSamplingPoints initSeedCount:(int)initSeedCount NS_SWIFT_NAME(create(initSamplingPoints:initSeedCount:)); // // static Ptr_PCTSignatures cv::xfeatures2d::PCTSignatures::create(vector_Point2f initSamplingPoints, vector_int initClusterSeedIndexes) // /** * Creates PCTSignatures algorithm using pre-generated sampling points * and clusterization seeds indexes. * @param initSamplingPoints Sampling points used in image sampling. * @param initClusterSeedIndexes Indexes of initial clusterization seeds. * Its size must be lower or equal to initSamplingPoints.size(). * @return Created algorithm. */ + (PCTSignatures*)create:(NSArray*)initSamplingPoints initClusterSeedIndexes:(IntVector*)initClusterSeedIndexes NS_SWIFT_NAME(create(initSamplingPoints:initClusterSeedIndexes:)); // // void cv::xfeatures2d::PCTSignatures::computeSignature(Mat image, Mat& signature) // /** * Computes signature of given image. * @param image Input image of CV_8U type. * @param signature Output computed signature. */ - (void)computeSignature:(Mat*)image signature:(Mat*)signature NS_SWIFT_NAME(computeSignature(image:signature:)); // // void cv::xfeatures2d::PCTSignatures::computeSignatures(vector_Mat images, vector_Mat signatures) // /** * Computes signatures for multiple images in parallel. * @param images Vector of input images of CV_8U type. * @param signatures Vector of computed signatures. */ - (void)computeSignatures:(NSArray*)images signatures:(NSArray*)signatures NS_SWIFT_NAME(computeSignatures(images:signatures:)); // // static void cv::xfeatures2d::PCTSignatures::drawSignature(Mat source, Mat signature, Mat& result, float radiusToShorterSideRatio = 1.0 / 8, int borderThickness = 1) // /** * Draws signature in the source image and outputs the result. * Signatures are visualized as a circle * with radius based on signature weight * and color based on signature color. * Contrast and entropy are not visualized. * @param source Source image. * @param signature Image signature. * @param result Output result. * @param radiusToShorterSideRatio Determines maximal radius of signature in the output image. * @param borderThickness Border thickness of the visualized signature. */ + (void)drawSignature:(Mat*)source signature:(Mat*)signature result:(Mat*)result radiusToShorterSideRatio:(float)radiusToShorterSideRatio borderThickness:(int)borderThickness NS_SWIFT_NAME(drawSignature(source:signature:result:radiusToShorterSideRatio:borderThickness:)); /** * Draws signature in the source image and outputs the result. * Signatures are visualized as a circle * with radius based on signature weight * and color based on signature color. * Contrast and entropy are not visualized. * @param source Source image. * @param signature Image signature. * @param result Output result. * @param radiusToShorterSideRatio Determines maximal radius of signature in the output image. */ + (void)drawSignature:(Mat*)source signature:(Mat*)signature result:(Mat*)result radiusToShorterSideRatio:(float)radiusToShorterSideRatio NS_SWIFT_NAME(drawSignature(source:signature:result:radiusToShorterSideRatio:)); /** * Draws signature in the source image and outputs the result. * Signatures are visualized as a circle * with radius based on signature weight * and color based on signature color. * Contrast and entropy are not visualized. * @param source Source image. * @param signature Image signature. * @param result Output result. */ + (void)drawSignature:(Mat*)source signature:(Mat*)signature result:(Mat*)result NS_SWIFT_NAME(drawSignature(source:signature:result:)); // // static void cv::xfeatures2d::PCTSignatures::generateInitPoints(vector_Point2f initPoints, int count, int pointDistribution) // /** * Generates initial sampling points according to selected point distribution. * @param initPoints Output vector where the generated points will be saved. * @param count Number of points to generate. * @param pointDistribution Point distribution selector. * Available: UNIFORM, REGULAR, NORMAL. * NOTE: Generated coordinates are in range [0..1) */ + (void)generateInitPoints:(NSArray*)initPoints count:(int)count pointDistribution:(int)pointDistribution NS_SWIFT_NAME(generateInitPoints(initPoints:count:pointDistribution:)); // // int cv::xfeatures2d::PCTSignatures::getSampleCount() // /** * Number of initial samples taken from the image. */ - (int)getSampleCount NS_SWIFT_NAME(getSampleCount()); // // int cv::xfeatures2d::PCTSignatures::getGrayscaleBits() // /** * Color resolution of the greyscale bitmap represented in allocated bits * (i.e., value 4 means that 16 shades of grey are used). * The greyscale bitmap is used for computing contrast and entropy values. */ - (int)getGrayscaleBits NS_SWIFT_NAME(getGrayscaleBits()); // // void cv::xfeatures2d::PCTSignatures::setGrayscaleBits(int grayscaleBits) // /** * Color resolution of the greyscale bitmap represented in allocated bits * (i.e., value 4 means that 16 shades of grey are used). * The greyscale bitmap is used for computing contrast and entropy values. */ - (void)setGrayscaleBits:(int)grayscaleBits NS_SWIFT_NAME(setGrayscaleBits(grayscaleBits:)); // // int cv::xfeatures2d::PCTSignatures::getWindowRadius() // /** * Size of the texture sampling window used to compute contrast and entropy * (center of the window is always in the pixel selected by x,y coordinates * of the corresponding feature sample). */ - (int)getWindowRadius NS_SWIFT_NAME(getWindowRadius()); // // void cv::xfeatures2d::PCTSignatures::setWindowRadius(int radius) // /** * Size of the texture sampling window used to compute contrast and entropy * (center of the window is always in the pixel selected by x,y coordinates * of the corresponding feature sample). */ - (void)setWindowRadius:(int)radius NS_SWIFT_NAME(setWindowRadius(radius:)); // // float cv::xfeatures2d::PCTSignatures::getWeightX() // /** * Weights (multiplicative constants) that linearly stretch individual axes of the feature space * (x,y = position; L,a,b = color in CIE Lab space; c = contrast. e = entropy) */ - (float)getWeightX NS_SWIFT_NAME(getWeightX()); // // void cv::xfeatures2d::PCTSignatures::setWeightX(float weight) // /** * Weights (multiplicative constants) that linearly stretch individual axes of the feature space * (x,y = position; L,a,b = color in CIE Lab space; c = contrast. e = entropy) */ - (void)setWeightX:(float)weight NS_SWIFT_NAME(setWeightX(weight:)); // // float cv::xfeatures2d::PCTSignatures::getWeightY() // /** * Weights (multiplicative constants) that linearly stretch individual axes of the feature space * (x,y = position; L,a,b = color in CIE Lab space; c = contrast. e = entropy) */ - (float)getWeightY NS_SWIFT_NAME(getWeightY()); // // void cv::xfeatures2d::PCTSignatures::setWeightY(float weight) // /** * Weights (multiplicative constants) that linearly stretch individual axes of the feature space * (x,y = position; L,a,b = color in CIE Lab space; c = contrast. e = entropy) */ - (void)setWeightY:(float)weight NS_SWIFT_NAME(setWeightY(weight:)); // // float cv::xfeatures2d::PCTSignatures::getWeightL() // /** * Weights (multiplicative constants) that linearly stretch individual axes of the feature space * (x,y = position; L,a,b = color in CIE Lab space; c = contrast. e = entropy) */ - (float)getWeightL NS_SWIFT_NAME(getWeightL()); // // void cv::xfeatures2d::PCTSignatures::setWeightL(float weight) // /** * Weights (multiplicative constants) that linearly stretch individual axes of the feature space * (x,y = position; L,a,b = color in CIE Lab space; c = contrast. e = entropy) */ - (void)setWeightL:(float)weight NS_SWIFT_NAME(setWeightL(weight:)); // // float cv::xfeatures2d::PCTSignatures::getWeightA() // /** * Weights (multiplicative constants) that linearly stretch individual axes of the feature space * (x,y = position; L,a,b = color in CIE Lab space; c = contrast. e = entropy) */ - (float)getWeightA NS_SWIFT_NAME(getWeightA()); // // void cv::xfeatures2d::PCTSignatures::setWeightA(float weight) // /** * Weights (multiplicative constants) that linearly stretch individual axes of the feature space * (x,y = position; L,a,b = color in CIE Lab space; c = contrast. e = entropy) */ - (void)setWeightA:(float)weight NS_SWIFT_NAME(setWeightA(weight:)); // // float cv::xfeatures2d::PCTSignatures::getWeightB() // /** * Weights (multiplicative constants) that linearly stretch individual axes of the feature space * (x,y = position; L,a,b = color in CIE Lab space; c = contrast. e = entropy) */ - (float)getWeightB NS_SWIFT_NAME(getWeightB()); // // void cv::xfeatures2d::PCTSignatures::setWeightB(float weight) // /** * Weights (multiplicative constants) that linearly stretch individual axes of the feature space * (x,y = position; L,a,b = color in CIE Lab space; c = contrast. e = entropy) */ - (void)setWeightB:(float)weight NS_SWIFT_NAME(setWeightB(weight:)); // // float cv::xfeatures2d::PCTSignatures::getWeightContrast() // /** * Weights (multiplicative constants) that linearly stretch individual axes of the feature space * (x,y = position; L,a,b = color in CIE Lab space; c = contrast. e = entropy) */ - (float)getWeightContrast NS_SWIFT_NAME(getWeightContrast()); // // void cv::xfeatures2d::PCTSignatures::setWeightContrast(float weight) // /** * Weights (multiplicative constants) that linearly stretch individual axes of the feature space * (x,y = position; L,a,b = color in CIE Lab space; c = contrast. e = entropy) */ - (void)setWeightContrast:(float)weight NS_SWIFT_NAME(setWeightContrast(weight:)); // // float cv::xfeatures2d::PCTSignatures::getWeightEntropy() // /** * Weights (multiplicative constants) that linearly stretch individual axes of the feature space * (x,y = position; L,a,b = color in CIE Lab space; c = contrast. e = entropy) */ - (float)getWeightEntropy NS_SWIFT_NAME(getWeightEntropy()); // // void cv::xfeatures2d::PCTSignatures::setWeightEntropy(float weight) // /** * Weights (multiplicative constants) that linearly stretch individual axes of the feature space * (x,y = position; L,a,b = color in CIE Lab space; c = contrast. e = entropy) */ - (void)setWeightEntropy:(float)weight NS_SWIFT_NAME(setWeightEntropy(weight:)); // // vector_Point2f cv::xfeatures2d::PCTSignatures::getSamplingPoints() // /** * Initial samples taken from the image. * These sampled features become the input for clustering. */ - (NSArray*)getSamplingPoints NS_SWIFT_NAME(getSamplingPoints()); // // void cv::xfeatures2d::PCTSignatures::setWeight(int idx, float value) // /** * Weights (multiplicative constants) that linearly stretch individual axes of the feature space. * @param idx ID of the weight * @param value Value of the weight * NOTE: * WEIGHT_IDX = 0; * X_IDX = 1; * Y_IDX = 2; * L_IDX = 3; * A_IDX = 4; * B_IDX = 5; * CONTRAST_IDX = 6; * ENTROPY_IDX = 7; */ - (void)setWeight:(int)idx value:(float)value NS_SWIFT_NAME(setWeight(idx:value:)); // // void cv::xfeatures2d::PCTSignatures::setWeights(vector_float weights) // /** * Weights (multiplicative constants) that linearly stretch individual axes of the feature space. * @param weights Values of all weights. * NOTE: * WEIGHT_IDX = 0; * X_IDX = 1; * Y_IDX = 2; * L_IDX = 3; * A_IDX = 4; * B_IDX = 5; * CONTRAST_IDX = 6; * ENTROPY_IDX = 7; */ - (void)setWeights:(FloatVector*)weights NS_SWIFT_NAME(setWeights(weights:)); // // void cv::xfeatures2d::PCTSignatures::setTranslation(int idx, float value) // /** * Translations of the individual axes of the feature space. * @param idx ID of the translation * @param value Value of the translation * NOTE: * WEIGHT_IDX = 0; * X_IDX = 1; * Y_IDX = 2; * L_IDX = 3; * A_IDX = 4; * B_IDX = 5; * CONTRAST_IDX = 6; * ENTROPY_IDX = 7; */ - (void)setTranslation:(int)idx value:(float)value NS_SWIFT_NAME(setTranslation(idx:value:)); // // void cv::xfeatures2d::PCTSignatures::setTranslations(vector_float translations) // /** * Translations of the individual axes of the feature space. * @param translations Values of all translations. * NOTE: * WEIGHT_IDX = 0; * X_IDX = 1; * Y_IDX = 2; * L_IDX = 3; * A_IDX = 4; * B_IDX = 5; * CONTRAST_IDX = 6; * ENTROPY_IDX = 7; */ - (void)setTranslations:(FloatVector*)translations NS_SWIFT_NAME(setTranslations(translations:)); // // void cv::xfeatures2d::PCTSignatures::setSamplingPoints(vector_Point2f samplingPoints) // /** * Sets sampling points used to sample the input image. * @param samplingPoints Vector of sampling points in range [0..1) * NOTE: Number of sampling points must be greater or equal to clusterization seed count. */ - (void)setSamplingPoints:(NSArray*)samplingPoints NS_SWIFT_NAME(setSamplingPoints(samplingPoints:)); // // vector_int cv::xfeatures2d::PCTSignatures::getInitSeedIndexes() // /** * Initial seeds (initial number of clusters) for the k-means algorithm. */ - (IntVector*)getInitSeedIndexes NS_SWIFT_NAME(getInitSeedIndexes()); // // void cv::xfeatures2d::PCTSignatures::setInitSeedIndexes(vector_int initSeedIndexes) // /** * Initial seed indexes for the k-means algorithm. */ - (void)setInitSeedIndexes:(IntVector*)initSeedIndexes NS_SWIFT_NAME(setInitSeedIndexes(initSeedIndexes:)); // // int cv::xfeatures2d::PCTSignatures::getInitSeedCount() // /** * Number of initial seeds (initial number of clusters) for the k-means algorithm. */ - (int)getInitSeedCount NS_SWIFT_NAME(getInitSeedCount()); // // int cv::xfeatures2d::PCTSignatures::getIterationCount() // /** * Number of iterations of the k-means clustering. * We use fixed number of iterations, since the modified clustering is pruning clusters * (not iteratively refining k clusters). */ - (int)getIterationCount NS_SWIFT_NAME(getIterationCount()); // // void cv::xfeatures2d::PCTSignatures::setIterationCount(int iterationCount) // /** * Number of iterations of the k-means clustering. * We use fixed number of iterations, since the modified clustering is pruning clusters * (not iteratively refining k clusters). */ - (void)setIterationCount:(int)iterationCount NS_SWIFT_NAME(setIterationCount(iterationCount:)); // // int cv::xfeatures2d::PCTSignatures::getMaxClustersCount() // /** * Maximal number of generated clusters. If the number is exceeded, * the clusters are sorted by their weights and the smallest clusters are cropped. */ - (int)getMaxClustersCount NS_SWIFT_NAME(getMaxClustersCount()); // // void cv::xfeatures2d::PCTSignatures::setMaxClustersCount(int maxClustersCount) // /** * Maximal number of generated clusters. If the number is exceeded, * the clusters are sorted by their weights and the smallest clusters are cropped. */ - (void)setMaxClustersCount:(int)maxClustersCount NS_SWIFT_NAME(setMaxClustersCount(maxClustersCount:)); // // int cv::xfeatures2d::PCTSignatures::getClusterMinSize() // /** * This parameter multiplied by the index of iteration gives lower limit for cluster size. * Clusters containing fewer points than specified by the limit have their centroid dismissed * and points are reassigned. */ - (int)getClusterMinSize NS_SWIFT_NAME(getClusterMinSize()); // // void cv::xfeatures2d::PCTSignatures::setClusterMinSize(int clusterMinSize) // /** * This parameter multiplied by the index of iteration gives lower limit for cluster size. * Clusters containing fewer points than specified by the limit have their centroid dismissed * and points are reassigned. */ - (void)setClusterMinSize:(int)clusterMinSize NS_SWIFT_NAME(setClusterMinSize(clusterMinSize:)); // // float cv::xfeatures2d::PCTSignatures::getJoiningDistance() // /** * Threshold euclidean distance between two centroids. * If two cluster centers are closer than this distance, * one of the centroid is dismissed and points are reassigned. */ - (float)getJoiningDistance NS_SWIFT_NAME(getJoiningDistance()); // // void cv::xfeatures2d::PCTSignatures::setJoiningDistance(float joiningDistance) // /** * Threshold euclidean distance between two centroids. * If two cluster centers are closer than this distance, * one of the centroid is dismissed and points are reassigned. */ - (void)setJoiningDistance:(float)joiningDistance NS_SWIFT_NAME(setJoiningDistance(joiningDistance:)); // // float cv::xfeatures2d::PCTSignatures::getDropThreshold() // /** * Remove centroids in k-means whose weight is lesser or equal to given threshold. */ - (float)getDropThreshold NS_SWIFT_NAME(getDropThreshold()); // // void cv::xfeatures2d::PCTSignatures::setDropThreshold(float dropThreshold) // /** * Remove centroids in k-means whose weight is lesser or equal to given threshold. */ - (void)setDropThreshold:(float)dropThreshold NS_SWIFT_NAME(setDropThreshold(dropThreshold:)); // // int cv::xfeatures2d::PCTSignatures::getDistanceFunction() // /** * Distance function selector used for measuring distance between two points in k-means. */ - (int)getDistanceFunction NS_SWIFT_NAME(getDistanceFunction()); // // void cv::xfeatures2d::PCTSignatures::setDistanceFunction(int distanceFunction) // /** * Distance function selector used for measuring distance between two points in k-means. * Available: L0_25, L0_5, L1, L2, L2SQUARED, L5, L_INFINITY. */ - (void)setDistanceFunction:(int)distanceFunction NS_SWIFT_NAME(setDistanceFunction(distanceFunction:)); @end NS_ASSUME_NONNULL_END