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); }
/// <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); }
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); }
/// <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); }
/// <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; }