我用c#写的usb摄像头程序,预览画面可以看到了,现在我想在预览画面上实时地画一个矩形框,并跟踪着视频上的某个像素点,视频画面我是放在picturebox里的,但是我在里面画了就是看不到那个框,可能是被视频遮住了,如果将静态图片放到picturebox里画就可以看到那个方框,在其他论坛问过人,有人说再在上面加个picturebox,然后在picturebox上面画,可是我试了还是不行,即使把picturebox的背景设置成透明也会挡住视频画面,所以这个方法应该行不通。以前看过有人用vc做的可以实现,但是我现在是想用c#来做,不知道有没有办法办到,只要能把框画出来并实时显示在视频上就行了,那位高手能解决吗?谢谢!
如果可以的话,给一些简单的例子!!

解决方案 »

  1.   

            private void button2_Click(object sender, EventArgs e)
            {
                           Bitmap m_Bmp = new Bitmap(this.pictureBox1.Image);
                           inputRectangle(m_Bmp,50,50,100,20,Color.Yellow);
                           pictureBox1.Image = m_Bmp;
            }
            public void inputRectangle(Bitmap b,int x,int y,int wid,int hei,Color c)
            {            for (int i = 0; i < b.Width; i++)
                {
                    for (int j = 0; j < b.Height; j++)
                    {
                        b.GetPixel(i, j);
                        if ((i == x || i == x + wid) && (j >= y && j <= y + hei) || (j == y || j == y + hei) && (i >= x && i <= x + wid))
                        {
                            b.SetPixel(i, j, c);
                        }
                       
                    }
                }
            }
      

  2.   

    你要用一个Image控件来呈现摄像头捕获的画面,那其实在这个画面上画东西是很容易实现的,你可以新建另外一个Image对象,用来放置你要画的东西,然后再每次捕获前,将你画的东西克隆到画面上。其实就是画面image跟临时Image不断的克隆,但可能比较费时,导致画面不流畅
      

  3.   

    忘了留联系方式:[email protected]
    谢谢!