增加調整Basler曝光時間功能

This commit is contained in:
JEFF 2025-01-22 14:00:12 +08:00
parent a508338501
commit 2e8b38ddf4

View File

@ -129,24 +129,6 @@ namespace Camera_connect
}
}
//private void StreamGrabber_ImageGrabbed1(object sender, ImageGrabbedEventArgs e)
//{
// lock (lockObject)
// {
// IGrabResult grabResult1 = e.GrabResult;
// if (grabResult1.IsValid && Graber)
// {
// // 將 IGrabResult 物件存入陣列
// grabResults[1] = grabResult1;
// // 在需要時轉換為 Bitmap 物件
// images[1] = GrabResult2Bmp(grabResults[1]);
// //委托就用到了!
// CameraImageEvent1(images[1]);
// }
// }
//}
/// <summary>
/// 開始擷取
/// </summary>
@ -223,6 +205,8 @@ namespace Camera_connect
{
if (i < CameraNumber)
{
// 更新曝光時間
UpdateExposureTime(i);
//PLCamera:所有可用于basler摄像机设备dByStre的参数名称列表 SingleFrame启用单帧采集模式。
allCameras[i].Parameters[PLCamera.AcquisitionMode].SetValue(PLCamera.AcquisitionMode.SingleFrame);
allCameras[i].StreamGrabber.Start(1, GrabStrategy.OneByOne, GrabLoop.ProvidedByStreamGrabber);
@ -248,6 +232,9 @@ namespace Camera_connect
if (i < CameraNumber)
{
// 更新曝光時間
UpdateExposureTime(i);
//Continuous啟用連續採集模式。
allCameras[i].Parameters[PLCamera.AcquisitionMode].SetValue(PLCamera.AcquisitionMode.Continuous);
//camera.StreamGrabber.Start(GrabStrategy.OneByOne, GrabLoop.ProvidedByStreamGrabber);
@ -288,5 +275,33 @@ namespace Camera_connect
MessageBox.Show("該相機已停止擷取");
}
}
public void UpdateExposureTime(int cameraIndex)
{
try
{
if (cameraIndex < CameraNumber)
{
// 從 TextBox 中讀取曝光時間
string exposureTimeText = form.Basler_ExposureTime.Text;
if (double.TryParse(exposureTimeText, out double exposureTime))
{
// 設定曝光時間到相機
allCameras[cameraIndex].Parameters[PLCamera.ExposureTime].SetValue(exposureTime);
}
else
{
MessageBox.Show("請輸入有效的曝光時間!");
}
}
else
{
MessageBox.Show("請確保相機索引正確!");
}
}
catch (Exception ex)
{
MessageBox.Show($"設定曝光時間時發生錯誤: {ex.Message}");
}
}
}
}