类 HOGDescriptor


  • public class HOGDescriptor
    extends java.lang.Object
    HOG(方向梯度直方图)描述符和对象检测器的实现。HOG 描述符算法由 Navneet Dalal 和 Bill Triggs 引入 CITE: Dalal2005。有用链接: https://hal.inria.fr/inria-00548512/document/ https://en.wikipedia.org/wiki/Histogram_of_oriented_gradients https://software.intel.com/en-us/ipp-dev-reference-histogram-of-oriented-gradients-hog-descriptor http://www.learnopencv.com/histogram-of-oriented-gradients http://www.learnopencv.com/handwritten-digits-classification-an-opencv-c-python-tutorial
    • 字段详细信息

      • nativeObj

        protected final long nativeObj
      • DEFAULT_NLEVELS

        public static final int DEFAULT_NLEVELS
        参见
        常量字段值
      • 按列描述符格式

        public static final int DESCR_FORMAT_COL_BY_COL
        参见
        常量字段值
      • 按行描述符格式

        public static final int DESCR_FORMAT_ROW_BY_ROW
        参见
        常量字段值
    • 构造函数详细信息

      • HOGDescriptor

        protected HOGDescriptor​(long addr)
      • HOGDescriptor

        public HOGDescriptor()
        使用默认参数创建 HOG 描述符和检测器。等同于 HOGDescriptor(Size(64,128), Size(16,16), Size(8,8), Size(8,8), 9 )
      • HOGDescriptor

        public HOGDescriptor​(Size _winSize,
                             Size _blockSize,
                             Size _blockStride,
                             Size _cellSize,
                             int _nbins,
                             int _derivAperture,
                             double _winSigma,
                             int _histogramNormType,
                             double _L2HysThreshold,
                             boolean _gammaCorrection,
                             int _nlevels,
                             boolean _signedGradient)
        参数
        _winSize - 设置窗口大小为给定值。
        _blockSize - 设置块大小为给定值。
        _blockStride - 设置块步长为给定值。
        _cellSize - 设置单元格大小为给定值。
        _nbins - 设置方向分箱数量为给定值。
        _derivAperture - 设置导数孔径为给定值。
        _winSigma - 设置窗口高斯权重标准差为给定值。
        _histogramNormType - 设置直方图归一化类型为给定值。
        _L2HysThreshold - 设置 L2Hys 阈值为给定值。
        _gammaCorrection - 设置 Gamma 校正为给定值。
        _nlevels - 设置尺度级别数量为给定值。
        _signedGradient - 设置有符号梯度为给定值。
      • HOGDescriptor

        public HOGDescriptor​(Size _winSize,
                             Size _blockSize,
                             Size _blockStride,
                             Size _cellSize,
                             int _nbins,
                             int _derivAperture,
                             double _winSigma,
                             int _histogramNormType,
                             double _L2HysThreshold,
                             boolean _gammaCorrection,
                             int _nlevels)
        参数
        _winSize - 设置窗口大小为给定值。
        _blockSize - 设置块大小为给定值。
        _blockStride - 设置块步长为给定值。
        _cellSize - 设置单元格大小为给定值。
        _nbins - 设置方向分箱数量为给定值。
        _derivAperture - 设置导数孔径为给定值。
        _winSigma - 设置窗口高斯权重标准差为给定值。
        _histogramNormType - 设置直方图归一化类型为给定值。
        _L2HysThreshold - 设置 L2Hys 阈值为给定值。
        _gammaCorrection - 设置 Gamma 校正为给定值。
        _nlevels - 设置尺度级别数量为给定值。
      • HOGDescriptor

        public HOGDescriptor​(Size _winSize,
                             Size _blockSize,
                             Size _blockStride,
                             Size _cellSize,
                             int _nbins,
                             int _derivAperture,
                             double _winSigma,
                             int _histogramNormType,
                             double _L2HysThreshold,
                             boolean _gammaCorrection)
        参数
        _winSize - 设置窗口大小为给定值。
        _blockSize - 设置块大小为给定值。
        _blockStride - 设置块步长为给定值。
        _cellSize - 设置单元格大小为给定值。
        _nbins - 设置方向分箱数量为给定值。
        _derivAperture - 设置导数孔径为给定值。
        _winSigma - 设置窗口高斯权重标准差为给定值。
        _histogramNormType - 设置直方图归一化类型为给定值。
        _L2HysThreshold - 设置 L2Hys 阈值为给定值。
        _gammaCorrection - 设置 Gamma 校正为给定值。
      • HOGDescriptor

        public HOGDescriptor​(Size _winSize,
                             Size _blockSize,
                             Size _blockStride,
                             Size _cellSize,
                             int _nbins,
                             int _derivAperture,
                             double _winSigma,
                             int _histogramNormType,
                             double _L2HysThreshold)
        参数
        _winSize - 设置窗口大小为给定值。
        _blockSize - 设置块大小为给定值。
        _blockStride - 设置块步长为给定值。
        _cellSize - 设置单元格大小为给定值。
        _nbins - 设置方向分箱数量为给定值。
        _derivAperture - 设置导数孔径为给定值。
        _winSigma - 设置窗口高斯权重标准差为给定值。
        _histogramNormType - 设置直方图归一化类型为给定值。
        _L2HysThreshold - 设置 L2Hys 阈值为给定值。
      • HOGDescriptor

        public HOGDescriptor​(Size _winSize,
                             Size _blockSize,
                             Size _blockStride,
                             Size _cellSize,
                             int _nbins,
                             int _derivAperture,
                             double _winSigma,
                             int _histogramNormType)
        参数
        _winSize - 设置窗口大小为给定值。
        _blockSize - 设置块大小为给定值。
        _blockStride - 设置块步长为给定值。
        _cellSize - 设置单元格大小为给定值。
        _nbins - 设置方向分箱数量为给定值。
        _derivAperture - 设置导数孔径为给定值。
        _winSigma - 设置窗口高斯权重标准差为给定值。
        _histogramNormType - 设置直方图归一化类型为给定值。
      • HOGDescriptor

        public HOGDescriptor​(Size _winSize,
                             Size _blockSize,
                             Size _blockStride,
                             Size _cellSize,
                             int _nbins,
                             int _derivAperture,
                             double _winSigma)
        参数
        _winSize - 设置窗口大小为给定值。
        _blockSize - 设置块大小为给定值。
        _blockStride - 设置块步长为给定值。
        _cellSize - 设置单元格大小为给定值。
        _nbins - 设置方向分箱数量为给定值。
        _derivAperture - 设置导数孔径为给定值。
        _winSigma - 设置窗口高斯权重标准差为给定值。
      • HOGDescriptor

        public HOGDescriptor​(Size _winSize,
                             Size _blockSize,
                             Size _blockStride,
                             Size _cellSize,
                             int _nbins,
                             int _derivAperture)
        参数
        _winSize - 设置窗口大小为给定值。
        _blockSize - 设置块大小为给定值。
        _blockStride - 设置块步长为给定值。
        _cellSize - 设置单元格大小为给定值。
        _nbins - 设置方向分箱数量为给定值。
        _derivAperture - 设置导数孔径为给定值。
      • HOGDescriptor

        public HOGDescriptor​(Size _winSize,
                             Size _blockSize,
                             Size _blockStride,
                             Size _cellSize,
                             int _nbins)
        参数
        _winSize - 设置窗口大小为给定值。
        _blockSize - 设置块大小为给定值。
        _blockStride - 设置块步长为给定值。
        _cellSize - 设置单元格大小为给定值。
        _nbins - 设置方向分箱数量为给定值。
      • HOGDescriptor

        public HOGDescriptor​(java.lang.String filename)
        创建 HOG 描述符和检测器,并从文件中加载 HOGDescriptor 参数和线性 SVM 分类器的系数。
        参数
        filename - 包含 HOGDescriptor 属性和线性 SVM 分类器系数的文件名。
    • 方法详细信息

      • getNativeObjAddr

        public long getNativeObjAddr()
      • __fromPtr__

        public static HOGDescriptor __fromPtr__​(long addr)
      • getDescriptorSize

        public long getDescriptorSize()
        返回分类所需的系数数量。
        返回
        自动生成
      • checkDetectorSize

        public boolean checkDetectorSize()
        检查检测器大小是否等于描述符大小。
        返回
        自动生成
      • getWinSigma

        public double getWinSigma()
        返回 winSigma 值
        返回
        自动生成
      • setSVMDetector

        public void setSVMDetector​(Mat svmdetector)
        设置线性 SVM 分类器的系数。
        参数
        svmdetector - 线性 SVM 分类器的系数。
      • load

        public boolean load​(java.lang.String filename,
                            java.lang.String objname)
        从文件加载 HOGDescriptor 参数和线性 SVM 分类器的系数
        参数
        filename - 要读取的文件名。
        objname - 要读取的节点的可选名称(如果为空,将使用第一个顶级节点)。
        返回
        自动生成
      • load

        public boolean load​(java.lang.String filename)
        从文件加载 HOGDescriptor 参数和线性 SVM 分类器的系数
        参数
        filename - 要读取的文件名。
        返回
        自动生成
      • save

        public void save​(java.lang.String filename,
                         java.lang.String objname)
        将 HOGDescriptor 参数和线性 SVM 分类器的系数保存到文件
        参数
        filename - 文件名
        objname - 对象名称
      • save

        public void save​(java.lang.String filename)
        将 HOGDescriptor 参数和线性 SVM 分类器的系数保存到文件
        参数
        filename - 文件名
      • compute

        public void compute​(Mat img,
                            MatOfFloat descriptors,
                            Size winStride,
                            Size padding,
                            MatOfPoint locations)
        计算给定图像的 HOG 描述符。
        参数
        img - 类型为 CV_8U 的矩阵,包含将计算 HOG 特征的图像。
        descriptors - 类型为 CV_32F 的矩阵
        winStride - 窗口步长。它必须是块步长的倍数。
        padding - 填充
        locations - 点向量
      • compute

        public void compute​(Mat img,
                            MatOfFloat descriptors,
                            Size winStride,
                            Size padding)
        计算给定图像的 HOG 描述符。
        参数
        img - 类型为 CV_8U 的矩阵,包含将计算 HOG 特征的图像。
        descriptors - 类型为 CV_32F 的矩阵
        winStride - 窗口步长。它必须是块步长的倍数。
        padding - 填充
      • compute

        public void compute​(Mat img,
                            MatOfFloat descriptors,
                            Size winStride)
        计算给定图像的 HOG 描述符。
        参数
        img - 类型为 CV_8U 的矩阵,包含将计算 HOG 特征的图像。
        descriptors - 类型为 CV_32F 的矩阵
        winStride - 窗口步长。它必须是块步长的倍数。
      • compute

        public void compute​(Mat img,
                            MatOfFloat descriptors)
        计算给定图像的 HOG 描述符。
        参数
        img - 类型为 CV_8U 的矩阵,包含将计算 HOG 特征的图像。
        descriptors - 类型为 CV_32F 的矩阵
      • detect

        public void detect​(Mat img,
                           MatOfPoint foundLocations,
                           MatOfDouble weights,
                           double hitThreshold,
                           Size winStride,
                           Size padding,
                           MatOfPoint searchLocations)
        执行无多尺度窗口的对象检测。
        参数
        img - 类型为 CV_8U 或 CV_8UC3 的矩阵,包含检测到对象的图像。
        foundLocations - 点向量,其中每个点包含检测到对象边界的左上角点。
        weights - 将包含每个检测到对象的置信度值的向量。
        hitThreshold - 特征与 SVM 分类平面之间距离的阈值。通常为 0,应在检测器系数中指定(作为最后一个自由系数)。但如果省略了自由系数(允许),您可以在此处手动指定。
        winStride - 窗口步长。它必须是块步长的倍数。
        padding - 填充
        searchLocations - 点向量,包含要评估的请求位置集合。
      • detect

        public void detect​(Mat img,
                           MatOfPoint foundLocations,
                           MatOfDouble weights,
                           double hitThreshold,
                           Size winStride,
                           Size padding)
        执行无多尺度窗口的对象检测。
        参数
        img - 类型为 CV_8U 或 CV_8UC3 的矩阵,包含检测到对象的图像。
        foundLocations - 点向量,其中每个点包含检测到对象边界的左上角点。
        weights - 将包含每个检测到对象的置信度值的向量。
        hitThreshold - 特征与 SVM 分类平面之间距离的阈值。通常为 0,应在检测器系数中指定(作为最后一个自由系数)。但如果省略了自由系数(允许),您可以在此处手动指定。
        winStride - 窗口步长。它必须是块步长的倍数。
        padding - 填充
      • detect

        public void detect​(Mat img,
                           MatOfPoint foundLocations,
                           MatOfDouble weights,
                           double hitThreshold,
                           Size winStride)
        执行无多尺度窗口的对象检测。
        参数
        img - 类型为 CV_8U 或 CV_8UC3 的矩阵,包含检测到对象的图像。
        foundLocations - 点向量,其中每个点包含检测到对象边界的左上角点。
        weights - 将包含每个检测到对象的置信度值的向量。
        hitThreshold - 特征与 SVM 分类平面之间距离的阈值。通常为 0,应在检测器系数中指定(作为最后一个自由系数)。但如果省略了自由系数(允许),您可以在此处手动指定。
        winStride - 窗口步长。它必须是块步长的倍数。
      • detect

        public void detect​(Mat img,
                           MatOfPoint foundLocations,
                           MatOfDouble weights,
                           double hitThreshold)
        执行无多尺度窗口的对象检测。
        参数
        img - 类型为 CV_8U 或 CV_8UC3 的矩阵,包含检测到对象的图像。
        foundLocations - 点向量,其中每个点包含检测到对象边界的左上角点。
        weights - 将包含每个检测到对象的置信度值的向量。
        hitThreshold - 特征与 SVM 分类平面之间距离的阈值。通常为 0,应在检测器系数中指定(作为最后一个自由系数)。但如果省略了自由系数(允许),您可以在此处手动指定。
      • detect

        public void detect​(Mat img,
                           MatOfPoint foundLocations,
                           MatOfDouble weights)
        执行无多尺度窗口的对象检测。
        参数
        img - 类型为 CV_8U 或 CV_8UC3 的矩阵,包含检测到对象的图像。
        foundLocations - 点向量,其中每个点包含检测到对象边界的左上角点。
        weights - 将包含每个检测到对象的置信度值的向量。通常为 0,应在检测器系数中指定(作为最后一个自由系数)。但如果省略了自由系数(允许),您可以在此处手动指定。被许多矩形覆盖。0 表示不执行分组。
      • detectMultiScale

        public void detectMultiScale​(Mat img,
                                     MatOfRect foundLocations,
                                     MatOfDouble foundWeights,
                                     double hitThreshold,
                                     Size winStride,
                                     Size padding,
                                     double scale,
                                     double groupThreshold,
                                     boolean useMeanshiftGrouping)
        在输入图像中检测不同大小的对象。检测到的对象以矩形列表的形式返回。
        参数
        img - 类型为 CV_8U 或 CV_8UC3 的矩阵,包含检测到对象的图像。
        foundLocations - 矩形向量,其中每个矩形包含检测到的对象。
        foundWeights - 将包含每个检测到对象的置信度值的向量。
        hitThreshold - 特征与 SVM 分类平面之间距离的阈值。通常为 0,应在检测器系数中指定(作为最后一个自由系数)。但如果省略了自由系数(允许),您可以在此处手动指定。
        winStride - 窗口步长。它必须是块步长的倍数。
        padding - 填充
        scale - 检测窗口增加的系数。
        groupThreshold - 用于调节相似度阈值的系数。检测到对象时,某些对象可能被许多矩形覆盖。0 表示不执行分组。
        useMeanshiftGrouping - 指示分组算法
      • detectMultiScale

        public void detectMultiScale​(Mat img,
                                     MatOfRect foundLocations,
                                     MatOfDouble foundWeights,
                                     double hitThreshold,
                                     Size winStride,
                                     Size padding,
                                     double scale,
                                     double groupThreshold)
        在输入图像中检测不同大小的对象。检测到的对象以矩形列表的形式返回。
        参数
        img - 类型为 CV_8U 或 CV_8UC3 的矩阵,包含检测到对象的图像。
        foundLocations - 矩形向量,其中每个矩形包含检测到的对象。
        foundWeights - 将包含每个检测到对象的置信度值的向量。
        hitThreshold - 特征与 SVM 分类平面之间距离的阈值。通常为 0,应在检测器系数中指定(作为最后一个自由系数)。但如果省略了自由系数(允许),您可以在此处手动指定。
        winStride - 窗口步长。它必须是块步长的倍数。
        padding - 填充
        scale - 检测窗口增加的系数。
        groupThreshold - 用于调节相似度阈值的系数。检测到对象时,某些对象可能被许多矩形覆盖。0 表示不执行分组。
      • detectMultiScale

        public void detectMultiScale​(Mat img,
                                     MatOfRect foundLocations,
                                     MatOfDouble foundWeights,
                                     double hitThreshold,
                                     Size winStride,
                                     Size padding,
                                     double scale)
        在输入图像中检测不同大小的对象。检测到的对象以矩形列表的形式返回。
        参数
        img - 类型为 CV_8U 或 CV_8UC3 的矩阵,包含检测到对象的图像。
        foundLocations - 矩形向量,其中每个矩形包含检测到的对象。
        foundWeights - 将包含每个检测到对象的置信度值的向量。
        hitThreshold - 特征与 SVM 分类平面之间距离的阈值。通常为 0,应在检测器系数中指定(作为最后一个自由系数)。但如果省略了自由系数(允许),您可以在此处手动指定。
        winStride - 窗口步长。它必须是块步长的倍数。
        padding - 填充
        scale - 检测窗口增加的系数。被许多矩形覆盖。0 表示不执行分组。
      • detectMultiScale

        public void detectMultiScale​(Mat img,
                                     MatOfRect foundLocations,
                                     MatOfDouble foundWeights,
                                     double hitThreshold,
                                     Size winStride,
                                     Size padding)
        在输入图像中检测不同大小的对象。检测到的对象以矩形列表的形式返回。
        参数
        img - 类型为 CV_8U 或 CV_8UC3 的矩阵,包含检测到对象的图像。
        foundLocations - 矩形向量,其中每个矩形包含检测到的对象。
        foundWeights - 将包含每个检测到对象的置信度值的向量。
        hitThreshold - 特征与 SVM 分类平面之间距离的阈值。通常为 0,应在检测器系数中指定(作为最后一个自由系数)。但如果省略了自由系数(允许),您可以在此处手动指定。
        winStride - 窗口步长。它必须是块步长的倍数。
        padding - 填充。被许多矩形覆盖。0 表示不执行分组。
      • detectMultiScale

        public void detectMultiScale​(Mat img,
                                     MatOfRect foundLocations,
                                     MatOfDouble foundWeights,
                                     double hitThreshold,
                                     Size winStride)
        在输入图像中检测不同大小的对象。检测到的对象以矩形列表的形式返回。
        参数
        img - 类型为 CV_8U 或 CV_8UC3 的矩阵,包含检测到对象的图像。
        foundLocations - 矩形向量,其中每个矩形包含检测到的对象。
        foundWeights - 将包含每个检测到对象的置信度值的向量。
        hitThreshold - 特征与 SVM 分类平面之间距离的阈值。通常为 0,应在检测器系数中指定(作为最后一个自由系数)。但如果省略了自由系数(允许),您可以在此处手动指定。
        winStride - 窗口步长。它必须是块步长的倍数。被许多矩形覆盖。0 表示不执行分组。
      • detectMultiScale

        public void detectMultiScale​(Mat img,
                                     MatOfRect foundLocations,
                                     MatOfDouble foundWeights,
                                     double hitThreshold)
        在输入图像中检测不同大小的对象。检测到的对象以矩形列表的形式返回。
        参数
        img - 类型为 CV_8U 或 CV_8UC3 的矩阵,包含检测到对象的图像。
        foundLocations - 矩形向量,其中每个矩形包含检测到的对象。
        foundWeights - 将包含每个检测到对象的置信度值的向量。
        hitThreshold - 特征与 SVM 分类平面之间距离的阈值。通常为 0,应在检测器系数中指定(作为最后一个自由系数)。但如果省略了自由系数(允许),您可以在此处手动指定。被许多矩形覆盖。0 表示不执行分组。
      • detectMultiScale

        public void detectMultiScale​(Mat img,
                                     MatOfRect foundLocations,
                                     MatOfDouble foundWeights)
        在输入图像中检测不同大小的对象。检测到的对象以矩形列表的形式返回。
        参数
        img - 类型为 CV_8U 或 CV_8UC3 的矩阵,包含检测到对象的图像。
        foundLocations - 矩形向量,其中每个矩形包含检测到的对象。
        foundWeights - 将包含每个检测到对象的置信度值的向量。通常为 0,应在检测器系数中指定(作为最后一个自由系数)。但如果省略了自由系数(允许),您可以在此处手动指定。被许多矩形覆盖。0 表示不执行分组。
      • computeGradient

        public void computeGradient​(Mat img,
                                    Mat grad,
                                    Mat angleOfs,
                                    Size paddingTL,
                                    Size paddingBR)
        计算梯度和量化梯度方向。
        参数
        img - 包含要计算图像的矩阵
        grad - 类型为 CV_32FC2 的矩阵,包含计算出的梯度
        angleOfs - 类型为 CV_8UC2 的矩阵,包含量化的梯度方向
        paddingTL - 左上角填充
        paddingBR - 右下角填充
      • computeGradient

        public void computeGradient​(Mat img,
                                    Mat grad,
                                    Mat angleOfs,
                                    Size paddingTL)
        计算梯度和量化梯度方向。
        参数
        img - 包含要计算图像的矩阵
        grad - 类型为 CV_32FC2 的矩阵,包含计算出的梯度
        angleOfs - 类型为 CV_8UC2 的矩阵,包含量化的梯度方向
        paddingTL - 左上角填充
      • computeGradient

        public void computeGradient​(Mat img,
                                    Mat grad,
                                    Mat angleOfs)
        计算梯度和量化梯度方向。
        参数
        img - 包含要计算图像的矩阵
        grad - 类型为 CV_32FC2 的矩阵,包含计算出的梯度
        angleOfs - 类型为 CV_8UC2 的矩阵,包含量化的梯度方向
      • getDefaultPeopleDetector

        public static MatOfFloat getDefaultPeopleDetector()
        返回用于行人检测(针对 64x128 窗口)的分类器训练得到的系数。
        返回
        自动生成
      • getDaimlerPeopleDetector

        public static MatOfFloat getDaimlerPeopleDetector()
        返回用于行人检测(针对 48x96 窗口)的分类器训练得到的系数。
        返回
        自动生成
      • get_winSize

        public Size get_winSize()
      • get_blockSize

        public Size get_blockSize()
      • get_blockStride

        public Size get_blockStride()
      • get_cellSize

        public Size get_cellSize()
      • get_nbins

        public int get_nbins()
      • get_derivAperture

        public int get_derivAperture()
      • get_winSigma

        public double get_winSigma()
      • get_histogramNormType

        public int get_histogramNormType()
      • get_L2HysThreshold

        public double get_L2HysThreshold()
      • get_gammaCorrection

        public boolean get_gammaCorrection()
      • get_svmDetector

        public MatOfFloat get_svmDetector()
      • get_nlevels

        public int get_nlevels()
      • get_signedGradient

        public boolean get_signedGradient()
      • finalize

        protected void finalize()
                         throws java.lang.Throwable
        重写
        finalize 在类 java.lang.Object 中
        抛出
        java.lang.Throwable