private void thread_functionauto_camera(string sn)//这个函数用自动程序里面图片采集
{
//复位采集完毕标志位
m_flag_caitu_wanbi = false;
// Destroy the old camera object.
if (m_camera != null)
{
DestroyCamera();
}
try
{
//从队列里面获取 相机信息
switch (sn)
{
case "sn1":
m_camera = new Camera(m_allCameras[0]);
break;
case "sn2":
m_camera = new Camera(m_allCameras[1]);
break;
default:
MessageBox.Show("SN错误");
break;
}
//用相机 是实例化的相机赋值
m_camera.CameraOpened += Configuration.AcquireContinuous;
// Register for the events of the image provider needed for proper operation.
m_camera.ConnectionLost += OnConnectionLost;
m_camera.CameraOpened += OnCameraOpened;
m_camera.CameraClosed += OnCameraClosed;
m_camera.StreamGrabber.GrabStarted += OnGrabStarted;
m_camera.StreamGrabber.ImageGrabbed += OnImageGrabbed;
m_camera.StreamGrabber.GrabStopped += OnGrabStopped;
// Open the connection to the camera device.
m_camera.Open();
//开始获取图片
OneShot();
while (false == m_flag_caitu_wanbi)
{
System.Threading.Thread.Sleep(20);
}
int gsz_send_image=gszTCP.send_bmp_body_Memory(m_send_bitmap);//发送图片
Tools.RunMessage(uiRichTextBox_UI_main, "发送图片"+ gsz_send_image.ToString(), "black", "VS2019", true);
int gsz_send_ai=gszTCP.send_liuchenghao(15);//让服务器开始推理
Tools.RunMessage(uiRichTextBox_UI_main, "AI推理" + gsz_send_ai.ToString(), "black", "VS2019", true);
//显示原始图片
this.Invoke(new Action(() =>
{
try
{
// 释放已存在的图像资源
if (pictureBox_Camer1_Original.Image != null)
{
pictureBox_Camer1_Original.Image.Dispose();
}
pictureBox_Camer1_Original.Image = m_send_bitmap;
}
catch (System.Exception ex)
{
MessageBox.Show($"图片加载失败:{ex.Message}");
}
pictureBox_Camer1_Original.Image = m_send_bitmap;
}));
}
catch (Exception exception)
{
ShowException(exception);
return;
}
finally
{
}
}