none
兩支basler ccd 攝影機顯示不同畫面C# RRS feed

  • 問題

  • 這是我自己寫的程式碼他可以開啟兩支CCD但是畫面並無法同時顯示,只能顯示其中一隻的畫面到兩個PICTUREBOX上,希望能兩支各別顯示其偵測的畫面,麻煩大家給我一點意見!!

    private void CaptureCamera()//啟動相機的執行續
            {
                _cameraThread = new Thread(new ThreadStart(CaptureCameraCallback));
                _cameraThread.Start();          
            }



            private void CaptureCameraCallback()
            {
                CvCapture cap0 = CvCapture.FromCamera(0);//PO0
                IplImage tpr = Cv.LoadImage("CaptureR.bmp", LoadMode.Color);//讀樣版圖檔案


                CvCapture cap1 = CvCapture.FromCamera(1);//PO1
                IplImage tpl = Cv.LoadImage("CaptureL.bmp", LoadMode.Color);//讀樣版圖檔案


                CvPoint minloc, maxloc;
                double minval, maxval;
                myUI("", minloc_X);//minloc_X寫為空白
                while (true)
                {

                    IplImage img0 = cap0.QueryFrame();
                    IplImage res0 = Cv.CreateImage(Cv.Size(img0.Width - tpr.Width + 1, img0.Height - tpr.Height + 1), BitDepth.F32, 1);//MatchTemplate result的公式
                    Cv.MatchTemplate(img0, tpr, res0, MatchTemplateMethod.SqDiffNormed);//MatchTemplate(image, templ, result, method) 影像對比
                    Cv.MinMaxLoc(res0, out minval, out maxval, out minloc, out maxloc, null);
                    //Cv.Rectangle(img, Cv.Point(minloc.X , minloc.Y), Cv.Point(minloc.X + tpl.Width, minloc.Y + tpl.Height), CvColor.Red, 1, 0, 0);
                    Bitmap bm0 = BitmapConverter.ToBitmap(img0);//將img轉成BMP檔
                    bm0.SetResolution(pictureBox2.Width, pictureBox2.Height);//設定BMP檔的分辨率為picturebox2的長寬
                    pictureBox2.Image = bm0;


                    IplImage img1 = cap1.QueryFrame();
                    IplImage res1 = Cv.CreateImage(Cv.Size(img1.Width - tpl.Width + 1, img1.Height - tpl.Height + 1), BitDepth.F32, 1);//MatchTemplate result的公式
                    Cv.MatchTemplate(img1, tpl, res1, MatchTemplateMethod.SqDiffNormed);//MatchTemplate(image, templ, result, method) 影像對比
                    Cv.MinMaxLoc(res1, out minval, out maxval, out minloc, out maxloc, null);
                    //Cv.Rectangle(img, Cv.Point(minloc.X , minloc.Y), Cv.Point(minloc.X + tpl.Width, minloc.Y + tpl.Height), CvColor.Red, 1, 0, 0);
                    Bitmap bm1 = BitmapConverter.ToBitmap(img1);//將img轉成BMP檔
                    bm1.SetResolution(pictureBox1.Width, pictureBox1.Height);//設定BMP檔的分辨率為picturebox1的長寬
                    pictureBox1.Image = bm1;

                }

                                            
    • 已編輯 XIEDADA 2016年7月5日 上午 06:54
    2016年7月4日 上午 07:29

所有回覆

  • MSDN論壇並非是個不勞而獲的地方, 發問問題之前請先告知您做了什麼

    遇到了何種問題, 而不是直接丟了問題出來要大家給您解答, 謝謝.


    請記得將對您有幫助的回覆"標示為解答"以幫助其他尋找解答及參與社群討論的朋友們。

    Please remember to click Mark as Answer on the post that helps you. This can be beneficial to other community members reading the thread.

    • 已標示為解答 Jerry.Hong 2016年7月4日 上午 10:38
    • 已取消標示為解答 XIEDADA 2016年7月6日 上午 06:08
    2016年7月4日 上午 09:15
  • Hi XIEDADA,

    建議您可以將您在製作過程中遇到的bug或是問題提出來跟大家討論:)


    請記得將對您有幫助的回覆"標示為解答"以幫助其他尋找解答及參與社群討論的朋友們。

    Please remember to click Mark as Answer on the post that helps you. This can be beneficial to other community members reading the thread.

    • 已標示為解答 Jerry.Hong 2016年7月4日 上午 10:38
    • 已取消標示為解答 XIEDADA 2016年7月6日 上午 06:09
    2016年7月4日 上午 10:37
  • Hello

    據我知道他們家的攝影機有有分Gbe跟一般RTSP方法,兩個使用的方法完全不同!且Gbe吐出來的是RAW Data 電腦的規格有相當的要求,至於RTSP的方法就有挺多方法可以解決,或是您可以使用Mjpeg也是有可能滿足您開發的需求.

    希望能幫的上一點忙.

    2016年7月5日 上午 03:21
  • 昨天程式沒上傳到 抱歉!!
    2016年7月5日 上午 06:55
  • 如果可以請您幫我看一下我的程式碼!!謝謝
    2016年7月5日 上午 06:55