// Use this for initialization void Start() { Debug.Log ("Initialising Network ... "); Network.init(); Debug.Log ("Initialising Port"); imagePort = new BufferedPortImageRgb(); Debug.Log ("Open Port"); imagePort.open (sourcePortName); Debug.Log ("Connect Port"); Network.connect(sourcePortName, destPortName); //RenderTexture.active = view; resWidth = view.width; resHeight = view.height; temp2D = new Texture2D(resWidth,resHeight, TextureFormat.ARGB32, false); texImage = imagePort.prepare(); //set resolution and parameters of image texImage.resize(resWidth, resHeight); texImage.setTopIsLowIndex(false); texImage.setQuantum(1); texImage.zero(); System.IntPtr imagePtr = texImage.getRawImage(); int imageSize = texImage.getRawImageSize(); byteArray = new byte[imageSize]; newPtr = Marshal.AllocHGlobal(byteArray.Length); }
public static void Main(string[] args) { var serviceProvider = BuildDIContainer(); // Initialize Yarp Network.init(); using (var videoSource = serviceProvider.GetRequiredService <IVideoSource>()) using (var audioSource = serviceProvider.GetRequiredService <IAudioSource>()) using (var videoPort = new BufferedPortImageRgb()) using (var audioPort = new BufferedPortBottle()) using (var videoFrameRgbBuffer = new Image <Rgb, byte>(640, 480)) { // Stream the video frames to a yarp port videoPort.open("/camera"); videoSource.FrameReady += (_, frame) => { using (var msg = videoPort.prepare()) { // Convert the incoming image which is BGR to RGB var bits = frame.Image.LockBits(new Rectangle(0, 0, frame.Image.Width, frame.Image.Height), ImageLockMode.ReadOnly, PixelFormat.Format24bppRgb); using (var videoFrameBgr = new Image <Bgr, byte>(frame.Image.Width, frame.Image.Height, bits.Stride, bits.Scan0)) CvInvoke.CvtColor(videoFrameBgr, videoFrameRgbBuffer, ColorConversion.Bgr2Rgb); frame.Image.UnlockBits(bits); // Send the RGB image over yarp var handle = GCHandle.Alloc(videoFrameRgbBuffer.Bytes, GCHandleType.Pinned); msg.setExternal(new SWIGTYPE_p_void(handle.AddrOfPinnedObject(), true), (uint)frame.Image.Width, (uint)frame.Image.Height); videoPort.write(); videoPort.waitForWrite(); handle.Free(); } }; // Stream the audio samples to a yarp port audioPort.open("/microphone"); audioSource.SampleReady += (_, sample) => { using (var bottle = audioPort.prepare()) { var handle = GCHandle.Alloc(sample.Data, GCHandleType.Pinned); bottle.clear(); bottle.add(Value.makeBlob(new SWIGTYPE_p_void(handle.AddrOfPinnedObject(), true), sample.Data.Length)); audioPort.write(); audioPort.waitForWrite(); handle.Free(); } }; // Run the sample application RunDemoApplication(videoSource, audioSource); } // Explicitely shutdown NLog and Yarp Network.fini(); NLog.LogManager.Shutdown(); }
public bool Initialise(string remoteMMCMName) { if (rpcOut == null) { rpcOut = new Port(); guiInstance = 0; string localName = "/" + remoteMMCMName + "/remote_gui_" + guiInstance + ":rpc"; while (Network.exists(localName)) { guiInstance++; localName = "/" + remoteMMCMName + "/remote_gui_" + guiInstance + ":rpc"; } rpcOut.open(localName); } if (rpcOut.getOutputCount() <= 0) { Network.connect(rpcOut.getName().c_str(), "/" + remoteMMCMName + "/rpc"); } if (rpcOut.getOutputCount() <= 0) { return(false); } //Display info about the map (change to some panel related organization) GetParameters(null, null); //Visualizations if (activity == null) { activity = new BufferedPortImageRgb(); activity.open("/" + remoteMMCMName + "/remote_gui_" + guiInstance + "/activity:i"); while (!Network.connect("/" + remoteMMCMName + "/activity:o", activity.getName().c_str())) { Time.delay(0.5); } } //Handle graphical display of maps panel1.Controls.Clear(); m_activity = new PictureBox(); m_activity.Height = 200; m_activity.Width = 200; m_activity.SizeMode = PictureBoxSizeMode.StretchImage; //Hook to the double click event (for stimulation purposes) //p.DoubleClick += new EventHandler(p_DoubleClick); //p.Click += new EventHandler(p_Click); panel1.Controls.Add(m_activity); return(true); }
public override void Initialise() { portReal = new BufferedPortImageRgb(); portPredicted = new BufferedPortImageRgb(); portPerceived = new BufferedPortImageRgb(); portReal.open("/" + mapName + "/" + name + "/real:i"); portPredicted.open("/" + mapName + "/" + name + "/predicted:o"); portPerceived.open("/" + mapName + "/" + name + "/perceived:o"); if (autoconnect_source != null) { Network.connect(autoconnect_source, YarpModalityVector.getRealPortName(mapName, name)); } base.Initialise(); }
public override bool configure(ResourceFinder rf) { if (base.configure(rf)) { broadcastDisplay = !rf.check("noDisplay"); //Open ports for visualizing the activity CVZ_TPC ctpc = cvz as CVZ_TPC; activity = new BufferedPortImageRgb(); activity.open("/" + ctpc.name + "/activity:o"); return(true); } else { return(false); } }
public override bool configure(ResourceFinder rf) { if (base.configure(rf)) { //Open ports for visualizing the activity CVZ_MMCM mmcm = cvz as CVZ_MMCM; for (int i = 0; i < mmcm.Layers; i++) { BufferedPortImageRgb p = new BufferedPortImageRgb(); p.open("/" + mmcm.name + "/activity/layer_" + i + ":o"); layersActivity.Add(p); } return(true); } else { return(false); } }
// Use this for initialization void Start() { Network.init(); if(sourcePortName != null) { inputImagePort = new BufferedPortImageRgb(); inputImagePort.open (inputPortName); Network.connect(sourcePortName, inputPortName); checkImageThread = new YarpImageCheck(); checkImageThread.imagePort = inputImagePort; checkImageThread.Start(); bool checkInit = checkImageThread.InitVariables(); if(checkInit) { Debug.Log("Initialised Correctly"); image2DTex = new Texture2D(checkImageThread.resWidth,checkImageThread.resHeight,TextureFormat.ARGB32, false); image2DTex.wrapMode = TextureWrapMode.Clamp; planeRender = plane.GetComponent<Renderer>(); bodyRenderer = model.GetComponent<Renderer>(); bodyTexOriginal = bodyRenderer.material.mainTexture as Texture2D; bodyColorArrayOrig = bodyTexOriginal.GetPixels32(); xwidth = bodyTexOriginal.width; ywidth = bodyTexOriginal.height; body2DTex = new Texture2D(bodyTexOriginal.width,bodyTexOriginal.height,TextureFormat.ARGB32, false); body2DTex.wrapMode = TextureWrapMode.Clamp; planeBodyRender = planeFace.GetComponent<Renderer>(); } else { Debug.Log("Could not initialise resolution. No images received"); } } else { Debug.Log("Please specify a source port"); } }
// Use this for initialization void Start() { Network.init(); if(sourcePortName != null) { Debug.Log ("Initialising Network ... "); Network.init(); Debug.Log ("Initialising Port"); imagePort = new BufferedPortImageRgb(); Debug.Log ("Open Port"); imagePort.open (sourcePortName); Debug.Log ("Connect Port"); //TODO initialise but wait for port connection within main code body Network.connect(sourcePortName, destPortName); writeImageThread = new YarpImageCheckWrite(); writeImageThread.imagePort = imagePort; resWidth = view.width; resHeight = view.height; writeImageThread.resWidth = resWidth; writeImageThread.resHeight = resHeight; bool checkInit = writeImageThread.InitVariables(); if(checkInit) { Debug.Log("Initialised Correctly"); temp2D = new Texture2D(resWidth,resHeight, TextureFormat.ARGB32, false); } else { Debug.Log("Could not initialise resolution. No images received"); } } else { Debug.Log("Please specify a source port"); } }
internal static HandleRef getCPtr(BufferedPortImageRgb obj) { return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; }
// Use this for initialization void Start() { Network.init(); if(sourcePortName != null) { inputImagePort = new BufferedPortImageRgb(); bool open = inputImagePort.open (inputPortName); Debug.Log ("Port opened: " + open); Network.connect(sourcePortName, inputPortName); checkImageThread = new YarpImageCheck(); checkImageThread.imagePort = inputImagePort; checkImageThread.Start(); checkInit = checkImageThread.InitVariables(); Debug.Log(checkImageThread.iters); if(checkInit) { Debug.Log("Initialised Correctly"); image2DTex = new Texture2D(checkImageThread.resWidth,checkImageThread.resHeight,TextureFormat.ARGB32, false); image2DTex.wrapMode = TextureWrapMode.Clamp; planeRender = plane.GetComponent<Renderer>(); } else { Debug.Log("Could not initialise resolution. No images received"); } } else { Debug.Log("Please specify a source port"); } }
internal static global::System.Runtime.InteropServices.HandleRef getCPtr(BufferedPortImageRgb obj) { return((obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr); }