|
@@ -264,8 +264,48 @@ namespace OTSMeasureApp
|
|
|
}
|
|
|
//设置右键菜单中的项 是否可编辑
|
|
|
SetContextMenuEnabled(true);
|
|
|
- AcquireBSEImage();
|
|
|
+ bool rst= AcquireBSEImage();
|
|
|
|
|
|
+ //取图不成功就返回
|
|
|
+ if (rst)
|
|
|
+ {
|
|
|
+ bfResult = true;
|
|
|
+ }
|
|
|
+ if (!rst)
|
|
|
+ {
|
|
|
+ if (contextMenuStrip1.Items[(int)MeasureStateMenuType.ChangeDiffImageShow].Enabled == true)
|
|
|
+ {
|
|
|
+ contextMenuStrip1.Items[(int)MeasureStateMenuType.ChangeDiffImageShow].Enabled = false;
|
|
|
+ }
|
|
|
+ //显示单点扫描元素信息菜单
|
|
|
+ contextMenuStrip1.Items[(int)MeasureStateMenuType.PointScanElementMenuItem].Enabled = false;
|
|
|
+ picBox.Hide();
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ //显示单点扫描元素信息菜单
|
|
|
+ contextMenuStrip1.Items[(int)MeasureStateMenuType.PointScanElementMenuItem].Enabled = true;
|
|
|
+ }
|
|
|
+ m_IsShowImageType = ImageType.BSEImage;
|
|
|
+ m_imagetype = ImageType.BSEImage;
|
|
|
+
|
|
|
+ ShowImage(m_iWidth, m_iHeight, originalBseData);
|
|
|
+
|
|
|
+ IsShowGrayLevelLine = false;
|
|
|
+ //获取默认Y轴
|
|
|
+
|
|
|
+
|
|
|
+ myChart.Visible = false;
|
|
|
+
|
|
|
+ //图像加载后的显示位置
|
|
|
+ m_CurrentMultiple = 0;
|
|
|
+
|
|
|
+
|
|
|
+ picBox.Height = this.RestoreBounds.Height;
|
|
|
+
|
|
|
+ picBox.Left = 0;
|
|
|
+ picBox.Top = 0;
|
|
|
|
|
|
|
|
|
DelElementPointGDIObjects();
|
|
@@ -276,7 +316,7 @@ namespace OTSMeasureApp
|
|
|
/// <summary>
|
|
|
/// 获取BSE图方法
|
|
|
/// </summary>
|
|
|
- private void AcquireBSEImage()
|
|
|
+ private bool AcquireBSEImage()
|
|
|
{
|
|
|
|
|
|
//获取电镜中图像大小
|
|
@@ -314,27 +354,16 @@ namespace OTSMeasureApp
|
|
|
|
|
|
|
|
|
bool rst = GetScanImage(m_iWidth, m_iHeight, nDwellTime, ref originalBseData);
|
|
|
- //取图不成功就返回
|
|
|
- if (rst)
|
|
|
- {
|
|
|
- bfResult = true;
|
|
|
- }
|
|
|
- if (!rst)
|
|
|
- {
|
|
|
- if (contextMenuStrip1.Items[(int)MeasureStateMenuType.ChangeDiffImageShow].Enabled == true)
|
|
|
- {
|
|
|
- contextMenuStrip1.Items[(int)MeasureStateMenuType.ChangeDiffImageShow].Enabled = false;
|
|
|
- }
|
|
|
- //显示单点扫描元素信息菜单
|
|
|
- contextMenuStrip1.Items[(int)MeasureStateMenuType.PointScanElementMenuItem].Enabled = false;
|
|
|
- picBox.Hide();
|
|
|
- return;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- //显示单点扫描元素信息菜单
|
|
|
- contextMenuStrip1.Items[(int)MeasureStateMenuType.PointScanElementMenuItem].Enabled = true;
|
|
|
- }
|
|
|
+
|
|
|
+
|
|
|
+ return rst;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+ private void UpdateImageAndLineScanChart()
|
|
|
+ {
|
|
|
+ ShowImage(m_iWidth, m_iHeight, originalBseData);
|
|
|
//获取灰度图数据
|
|
|
dGrayLevelData = new double[(int)GrayLevel.Max];
|
|
|
dGrayLevelData = GetGaryData(originalBseData, dGrayLevelData);
|
|
@@ -345,26 +374,19 @@ namespace OTSMeasureApp
|
|
|
{
|
|
|
dGrayLevelMax = Math.Max(dGrayLevelMax, dGrayLevelData[i]);
|
|
|
}
|
|
|
- SetClickMenuBSEImg();
|
|
|
- //更新当前的图
|
|
|
- //UpdateImageOrChart(m_imagetype);
|
|
|
-
|
|
|
- ShowImage(m_iWidth, m_iHeight, originalBseData);
|
|
|
-
|
|
|
- IsShowGrayLevelLine = false;
|
|
|
- //获取默认Y轴
|
|
|
-
|
|
|
-
|
|
|
- myChart.Visible = false;
|
|
|
-
|
|
|
- //图像加载后的显示位置
|
|
|
- m_CurrentMultiple = 0;
|
|
|
-
|
|
|
-
|
|
|
- picBox.Height = this.RestoreBounds.Height;
|
|
|
-
|
|
|
- picBox.Left = 0;
|
|
|
- picBox.Top = 0;
|
|
|
+ int[] XData = new int[(int)GrayLevel.Max];
|
|
|
+ for (int i = 0; i < (int)GrayLevel.Max; i++)
|
|
|
+ {
|
|
|
+ XData[i] = i + 1;
|
|
|
+ }
|
|
|
+ int[] YData = new int[dGrayLevelData.Length];
|
|
|
+ for (int i = 0; i < dGrayLevelData.Length; i++)
|
|
|
+ {
|
|
|
+ YData[i] = (int)dGrayLevelData[i];
|
|
|
+ }
|
|
|
+ chartData(XData, YData);
|
|
|
+ picBox.Refresh();
|
|
|
+
|
|
|
|
|
|
}
|
|
|
public double[] GetGaryData(byte[] Imagedata, double[] GrayLevelData)
|
|
@@ -423,17 +445,7 @@ namespace OTSMeasureApp
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
- #region 设置点击BSE菜单
|
|
|
- public void SetClickMenuBSEImg()
|
|
|
- {
|
|
|
- //用于线扫描曲线
|
|
|
- m_IsShowImageType = ImageType.BSEImage;
|
|
|
- m_imagetype = ImageType.BSEImage;
|
|
|
- picBox.Show();
|
|
|
-
|
|
|
-
|
|
|
- }
|
|
|
- #endregion
|
|
|
+
|
|
|
|
|
|
|
|
|
//显示去背景图 = AUTO
|
|
@@ -614,7 +626,7 @@ namespace OTSMeasureApp
|
|
|
#endregion
|
|
|
//显示线扫描曲线
|
|
|
#region 显示线扫描曲线
|
|
|
- private void ShowGrayLevelLine_Click(object sender, EventArgs e)
|
|
|
+ private void ShowLineScanChart_Click(object sender, EventArgs e)
|
|
|
{
|
|
|
if (MenuItemLineScan.Checked)
|
|
|
{
|
|
@@ -629,6 +641,14 @@ namespace OTSMeasureApp
|
|
|
panelXray.Visible = false;
|
|
|
|
|
|
picBox.Refresh();
|
|
|
+ if (IsShowGrayLevelLine)
|
|
|
+ {
|
|
|
+ timer1.Enabled = true;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ timer1.Enabled = false;
|
|
|
+ }
|
|
|
|
|
|
}
|
|
|
|
|
@@ -1930,6 +1950,33 @@ namespace OTSMeasureApp
|
|
|
m_CurrentMultiple = 0;
|
|
|
panelXray.Visible = false;
|
|
|
}
|
|
|
+
|
|
|
+ private void timer1_Tick(object sender, EventArgs e)
|
|
|
+ {
|
|
|
+ log.Info("begin to acquire image");
|
|
|
+ bool rst = AcquireBSEImage();
|
|
|
+ if (rst)
|
|
|
+ {
|
|
|
+ backgroundWorker1.RunWorkerAsync();
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ private void backgroundWorker1_DoWork(object sender, System.ComponentModel.DoWorkEventArgs e)
|
|
|
+ {
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ //更新当前的图
|
|
|
+
|
|
|
+ log.Info("begin to show image");
|
|
|
+ UpdateImageAndLineScanChart();
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
|