Exemple #1
0
 public void Init()
 {
     lock (_lock)
     {
         _pb      = new DisparityTransform(Mode != 0);
         currMode = Mode;
     }
 }
Exemple #2
0
 public static extern void cvFindStereoCorrespondence(IntPtr leftImage, IntPtr rightImage, DisparityMode mode, IntPtr depthImage, int maxDisparity, double param1, double param2, double param3, double param4, double param5);
Exemple #3
0
        /// <summary>
        /// ステレオペア間の視差を計算する
        /// </summary>
        /// <param name="leftImage">ステレオペアの左画像.8ビット,グレースケールの(傾きや位置などが)修正された画像.</param>
        /// <param name="rightImage">ステレオペアの右画像.8ビット,グレースケールの修正された画像.</param>
        /// <param name="mode">視差を計算するためのアルゴリズム(現在は,CV_DISPARITY_BIRCHFIELD のみをサポートしている).</param>
        /// <param name="depthImage">結果のデプス画像.視差を表すようにスケーリングされた,8ビット,グレースケール画像. つまり,ゼロ視差(これは,カメラから非常に遠い場所の点にあたる)は 0 にマッピングされ,最大視差は 255 にマッピングされる.</param>
        /// <param name="maxDisparity">取りうる最大視差.オブジェクトがカメラに近ければ近い程,ここには大きな値が指定されるべきである. ただし,大きすぎる値は,処理速度を極端に低下させる.</param>
        /// <param name="param1">アルゴリズムのパラメータ. オクルージョンペナルティ定数 など</param>
        /// <param name="param2">アルゴリズムのパラメータ. 一致報酬 など</param>
        /// <param name="param3">アルゴリズムのパラメータ. 高信頼度の領域(param3 以上の信頼性を持つ,隣接するピクセルの組)の定義 など</param>
        /// <param name="param4">アルゴリズムのパラメータ. 中信頼度の領域の定義 など</param>
        /// <param name="param5">アルゴリズムのパラメータ. 低信頼度の領域の定義 など</param>
#else
        /// <summary>
        /// Calculates disparity for stereo-pair
        /// </summary>
        /// <param name="leftImage">Left image of stereo pair, rectified grayscale 8-bit image </param>
        /// <param name="rightImage">Right image of stereo pair, rectified grayscale 8-bit image </param>
        /// <param name="mode">Algorithm used to find a disparity (now only CV_DISPARITY_BIRCHFIELD is supported) </param>
        /// <param name="depthImage">Destination depth image, grayscale 8-bit image that codes the scaled disparity, so that the zero disparity (corresponding to the points that are very far from the cameras) maps to 0, maximum disparity maps to 255. </param>
        /// <param name="maxDisparity">Maximum possible disparity. The closer the objects to the cameras, the larger value should be specified here. Too big values slow down the process significantly. </param>
        /// <param name="param1">Constant occlusion penalty, default=25</param>
        /// <param name="param2">Constant match reward, default=5</param>
        /// <param name="param3">Defines a highly reliable region (set of contiguous pixels whose reliability is at least param3), default=12</param>
        /// <param name="param4">Defines a moderately reliable region, default=15</param>
        /// <param name="param5">Defines a slightly reliable region, default=25</param>
#endif
        public static void FindStereoCorrespondence(CvArr leftImage, CvArr rightImage, DisparityMode mode, CvArr depthImage, int maxDisparity, double param1, double param2, double param3, double param4, double param5)
        {
            if (leftImage == null)
                throw new ArgumentNullException("leftImage");
            if (rightImage == null)
                throw new ArgumentNullException("rightImage");
            if (depthImage == null)
                throw new ArgumentNullException("depthImage");
            NativeMethods.cvFindStereoCorrespondence(leftImage.CvPtr, rightImage.CvPtr, mode, depthImage.CvPtr, maxDisparity, param1, param2, param3, param4, param5);
        }
Exemple #4
0
        /// <summary>
        /// ステレオペア間の視差を計算する
        /// </summary>
        /// <param name="leftImage">ステレオペアの左画像.8ビット,グレースケールの(傾きや位置などが)修正された画像.</param>
        /// <param name="rightImage">ステレオペアの右画像.8ビット,グレースケールの修正された画像.</param>
        /// <param name="mode">視差を計算するためのアルゴリズム(現在は,CV_DISPARITY_BIRCHFIELD のみをサポートしている).</param>
        /// <param name="depthImage">結果のデプス画像.視差を表すようにスケーリングされた,8ビット,グレースケール画像. つまり,ゼロ視差(これは,カメラから非常に遠い場所の点にあたる)は 0 にマッピングされ,最大視差は 255 にマッピングされる.</param>
        /// <param name="maxDisparity">取りうる最大視差.オブジェクトがカメラに近ければ近い程,ここには大きな値が指定されるべきである. ただし,大きすぎる値は,処理速度を極端に低下させる.</param>
#else
        /// <summary>
        /// Calculates disparity for stereo-pair
        /// </summary>
        /// <param name="leftImage">Left image of stereo pair, rectified grayscale 8-bit image </param>
        /// <param name="rightImage">Right image of stereo pair, rectified grayscale 8-bit image </param>
        /// <param name="mode">Algorithm used to find a disparity (now only CV_DISPARITY_BIRCHFIELD is supported) </param>
        /// <param name="depthImage">Destination depth image, grayscale 8-bit image that codes the scaled disparity, so that the zero disparity (corresponding to the points that are very far from the cameras) maps to 0, maximum disparity maps to 255. </param>
        /// <param name="maxDisparity">Maximum possible disparity. The closer the objects to the cameras, the larger value should be specified here. Too big values slow down the process significantly. </param>
#endif
        public static void FindStereoCorrespondence(CvArr leftImage, CvArr rightImage, DisparityMode mode, CvArr depthImage, int maxDisparity)
        {
            const int p = CvConst.CV_UNDEF_SC_PARAM;
            FindStereoCorrespondence(leftImage, rightImage, mode, depthImage, maxDisparity, p, p, p, p, p);
        }