如题,谢谢了。

解决方案 »

  1.   

    是不是还要设定镜头的曝光时间和ISO值啊?
    或是CMOS没有初始化。
      

  2.   

    我以前也和你一样,这个问题我也问过。
    后来
    后来我决定使用这个程序 :
    http://www.codeproject.com/KB/directx/directshownet.aspx
      

  3.   

            //定义打开摄像头函数
            private void OpenCapture()
            {
                //定义视频窗口的长宽
                int intWidth = this.panel1.Width;
                int intHeight = this.panel1.Height;
                int intDevice = 0;
                string refDevice = intDevice.ToString();
                //创建视频窗口并得到句柄
                hHwnd = Form1.capCreateCaptureWindowA(ref   refDevice, 1342177280, 0, 0, 640, 480, this.panel1.Handle.ToInt32(), 0);
                if (Form1.SendMessage(hHwnd, 0x40a, intDevice, 0) > 0)
                {
                    Form1.SendMessage(this.hHwnd, 0x435, -1, 0);
                    Form1.SendMessage(this.hHwnd, 0x434, 0x42, 0);
                    Form1.SendMessage(this.hHwnd, 0x432, -1, 0);
                    Form1.SetWindowPos(this.hHwnd, 1, 0, 0, intWidth, intHeight, 6);            }
                else
                {
                    Form1.DestroyWindow(this.hHwnd);
                }
            }
    调用打开摄像头方法:
               private void btnOpen_Click(object sender, System.EventArgs e)
            {
                this.OpenCapture();
                button1.Enabled = false;
                button2.Enabled = true;
            }
      

  4.   

    换一个摄像头,有可能是免驱动的摄像头。
    如果别的程序可以打开的话。
    免驱的摄像头最好用DirectShow开发。