Exemplo n.º 1
0
        private bool WriteGainValueToCamera(CameraChannels cameraChannels, double gainValue)
        {
            bool   retVal  = false;
            string command = "";
            string buffer  = "";

            switch (cameraChannels)
            {
            case CameraChannels.Red:
                command = Globals.e2vUC4CommandToSetRedPlaneGain + gainValue.ToString() + System.Environment.NewLine;
                break;

            case CameraChannels.Green:
                command = Globals.e2vUC4CommandToSetGreenPlaneGain + gainValue.ToString() + System.Environment.NewLine;
                break;

            case CameraChannels.Blue:
                command = Globals.e2vUC4CommandToSetBluePlaneGain + gainValue.ToString() + System.Environment.NewLine;
                break;
            }

            retVal = Globals.ExecuteSerialCommand(
                (uint)CameraAcquisition.CurrentCameraProperties.SerialPortIndex,
                command,
                out buffer,
                Properties.Settings.Default.SerialCommunicationTimeout,
                10);
            if (!retVal)
            {
                return(retVal);
            }

            return(retVal);
        }
Exemplo n.º 2
0
 /// <summary>
 /// Returns the pointer to the image grabbed with cvGrabFrame function.
 /// The returned image should not be released or modified by user.
 /// </summary>
 /// <param name="image"></param>
 /// <param name="streamIdx">non-zero streamIdx is only valid for multi-head camera live streams</param>
 /// <returns></returns>
 public bool Retrieve(Mat image, CameraChannels streamIdx = CameraChannels.OpenNI_DepthMap)
 {
     ThrowIfDisposed();
     if (image == null)
     {
         throw new ArgumentNullException(nameof(image));
     }
     image.ThrowIfDisposed();
     return(NativeMethods.videoio_VideoCapture_retrieve(ptr, image.CvPtr, (int)streamIdx) != 0);
 }
Exemplo n.º 3
0
        private int GetGainValueFromCamera(CameraChannels cameraChannels)
        {
            int    currentGainValue = -1;
            string command          = "";
            string buffer           = "";
            bool   retVal;

            switch (cameraChannels)
            {
            case CameraChannels.Red:
                command = Globals.e2vUC4CommandToGetRedPlaneGain + System.Environment.NewLine;
                break;

            case CameraChannels.Green:
                command = Globals.e2vUC4CommandToGetGreenPlaneGain + System.Environment.NewLine;
                break;

            case CameraChannels.Blue:
                command = Globals.e2vUC4CommandToGetBluePlaneGain + System.Environment.NewLine;
                break;
            }
            retVal = Globals.ExecuteSerialCommand(
                (uint)CameraAcquisition.CurrentCameraProperties.SerialPortIndex,
                command,
                out buffer,
                Properties.Settings.Default.SerialCommunicationTimeout,
                10);
            if (!retVal)
            {
                return(-1);
            }

            string[] bufferArray = buffer.Split(new char[] { '>' }, StringSplitOptions.RemoveEmptyEntries);
            string   bufferValue = Convert.ToString(bufferArray[0]);

            currentGainValue = Convert.ToInt32(bufferValue);

            return(currentGainValue);
        }
Exemplo n.º 4
0
        /// <summary>
        /// GrabFrame 関数によって取り出された画像への参照を返す.
        /// 返された画像は,ユーザが解放したり,変更したりするべきではない.
        /// </summary>
        /// <param name="streamIdx">non-zero streamIdx is only valid for multi-head camera live streams</param>
        /// <returns>1フレームの画像 (GC禁止フラグが立っている). キャプチャできなかった場合はnull.</returns>
#else
        /// <summary>
        /// Returns the pointer to the image grabbed with cvGrabFrame function. 
        /// The returned image should not be released or modified by user. 
        /// </summary>
        /// <param name="streamIdx">non-zero streamIdx is only valid for multi-head camera live streams</param>
        /// <returns></returns>
#endif
        public IplImage RetrieveFrame(CameraChannels streamIdx)
        {
            return Cv.RetrieveFrame(this, streamIdx);
        }
Exemplo n.º 5
0
        /// <summary>
        /// GrabFrame 関数によって取り出された画像への参照を返す.
        /// 返された画像は,ユーザが解放したり,変更したりするべきではない.
        /// </summary>
        /// <param name="image"></param>
        /// <param name="streamIdx">non-zero streamIdx is only valid for multi-head camera live streams</param>
        /// <returns>1フレームの画像 (GC禁止フラグが立っている). キャプチャできなかった場合はnull.</returns>
#else
        /// <summary>
        /// Returns the pointer to the image grabbed with cvGrabFrame function. 
        /// The returned image should not be released or modified by user. 
        /// </summary>
        /// <param name="image"></param>
        /// <param name="streamIdx">non-zero streamIdx is only valid for multi-head camera live streams</param>
        /// <returns></returns>
#endif
        public bool Retrieve(Mat image, CameraChannels streamIdx = CameraChannels.OpenNI_DepthMap)
        {
            ThrowIfDisposed();
            if (image == null)
                throw new ArgumentNullException("image");
            image.ThrowIfDisposed();
            return NativeMethods.videoio_VideoCapture_retrieve(ptr, image.CvPtr, (int)streamIdx) != 0;
        }