cvMakeHistHeaderForArray() приватный Метод

private cvMakeHistHeaderForArray ( int dims, [ sizes, IntPtr hist, IntPtr data, [ ranges, int uniform ) : IntPtr
dims int
sizes [
hist IntPtr
data IntPtr
ranges [
uniform int
Результат IntPtr
Пример #1
0
        private void InitializeComponent(MatND <float> matND, RangeF[] ranges)
        {
            _matND = matND;
            MCvMatND cvMatND = _matND.MCvMatND;

            Debug.Assert(
                ranges.Length == cvMatND.dims,
                "incompatible dimension");
            _ptr = Marshal.AllocHGlobal(StructSize.MCvHistogram);

            #region parse the ranges to appropriate format
            GCHandle rangesHandle = GCHandle.Alloc(ranges, GCHandleType.Pinned);
            IntPtr[] rangesPts    = new IntPtr[ranges.Length];
            Int64    address      = rangesHandle.AddrOfPinnedObject().ToInt64();
            for (int i = 0; i < rangesPts.Length; i++)
            {
                rangesPts[i] = new IntPtr(address + i * StructSize.RangF);
            }
            #endregion

            CvInvoke.cvMakeHistHeaderForArray(
                cvMatND.dims,
                Array.ConvertAll <MCvMatND.Dimension, int>(cvMatND.dim, delegate(MCvMatND.Dimension d) {
                return(d.Size);
            }),                //binSizes
                _ptr,
                _matND.MCvMatND.data,
                rangesPts,
                1);

            rangesHandle.Free();
        }