imgproc_calcBackProject

[32/64bit] ヒストグラムのバックプロジェクションを計算します.

imgproc_calcBackProject p1,p2,p3,p4,p5,p6,p7

p1 = sptr : IntPtr[] images
p2 = int : int nimages
p3 = var : int[] channels
p4 = sptr : IntPtr hist
p5 = sptr : IntPtr backProject
p6 = sptr : IntPtr[] ranges
p7 = int : int uniform

(プラグイン / モジュール : OpenCvSharpExtern.dll)

解説

関数 cv::calcBackProject は,ヒストグラムのバックプロジェクションを計算します.つまり, calcHist と同様に,各位置 (x, y) において,入力画像の選択されたチャンネルの値を収集し,それに対応するヒストグラムのビンを求めます.しかし,この関数は,ビンの値をインクリメントするのではなく,ビンの値を読み込み,それを scale でスケーリングして backProject(x,y) に格納します.統計学の観点から言えば,この関数は,ヒストグラムで表される経験的な確率分布に関する各要素の値の確率を計算します.例えば,シーンの中の明るい色の物体を見つけて追跡する方法を見てみましょう.追跡する前に,物体がフレームのほぼ全体を覆うようにカメラに見せます.色相ヒストグラムを算出する。このヒストグラムには、物体の主要な色に対応する強い最大値が含まれています。


トラッキングの際には、事前に計算したヒストグラムを用いて、入力ビデオフレームの色相平面のバックプロジェクションを計算します。弱い色を抑制するために、バックプロジェクションの閾値を設定します。また、彩度が不十分な画素や、暗すぎる画素、明るすぎる画素を抑制することも有効です。


これはCamShiftカラーオブジェクトトラッカーの近似アルゴリズムです。socalcHist, compareHistExamples: samples/cpp/camshiftdemo.cpp.

元関数名(C#): imgproc_calcBackProject
元DLLエクスポート名: imgproc_calcBackProject
参照元CSファイル: Internal\PInvoke\NativeMethods\imgproc\NativeMethods_imgproc.cs
▼ C言語側関数定義
CVAPI(ExceptionStatus) imgproc_calcBackProject(cv::Mat **images, int nimages,
                                    const int* channels, cv::_InputArray *hist, cv::_OutputArray *backProject, 
                                    const float** ranges, int uniform)
{
    BEGIN_WRAP
    std::vector<cv::Mat> imagesVec(nimages);
    for (auto i = 0; i < nimages; i++)
        imagesVec[i] = *(images[i]);
    cv::calcBackProject(&imagesVec[0], nimages, channels, *hist, *backProject, ranges, uniform != 0);
    END_WRAP
}

情報

プラグイン / モジュールOpenCvSharpExtern.dll
バージョン1.00
作成日2021/11/30
著作者inovia
URLhttps://hsp.moe/
備考#include "OpenCvSharpExtern32.as"
#include "OpenCvSharpExtern64.as"
使用するHSPランタイムのビット数に合わせたインクルードファイルを使用すること
タイプOpenCVSharpラッパーDLL
グループNativeMethods_imgproc
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\OpenCvSharpExtern.hs