//public List<IParameter> ParameterList = new List<IParameter>(); //public void WriteToHTML() //{ // string s = ""; // s = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN/\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"><html xmlns=\"http://www.w3.org/1999/xhtml\">"; // s = s + "<head><meta http-equiv=\"Content-Language\" content=\"zh-cn\" /><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />"; // s = s + "<title>shiyan</title><style type=\"text/css\">.style1 {text-align: left;}.style2 {margin-left: 40px;}.style3 { text-decoration: underline; margin-left: 40px;}</style></head>"; // s = s + "<body>"; // s = s + "<h2>测试结果信息:</h2>"; // foreach (LParameter lp in ParameterList) // { // s = s + "指标名称:" + lp.Name; // s = s + "<p class=\"style2\">说明:" + lp.Memo + "</p>"; // s = s + "<p>测试时间:" + lp.TestTime.ToString() + "</p>"; // if (lp.Value != Double.NaN) // { // s = s + "<p>测试值:" + lp.Value.ToString() + lp.Dimension + "</p>"; // } // } // s = s + "</body></html>"; // SilverlightLFC.common.Environment.getEnvironment().SaveFileString(s, "HTML文件|*.html"); // //SaveFileDialog of = new SaveFileDialog(); // //of.Filter = "HTML文件|*.html"; // //of.ShowDialog(); // //byte[] sb = System.Text.Encoding.Unicode.GetBytes(s); // //Stream fs = of.OpenFile(); // //if (fs != null) // //{ // // fs.Write(sb, 0, sb.Length); // //} //} //System.Windows.Threading.DispatcherTimer time = new System.Windows.Threading.DispatcherTimer(); //int pi = 0; //void autoTest() //{ // if (!TestChartNull()) { return; } // //try{ // BeginTime = DateTime.Now; // Begin(); // EndTime = DateTime.Now; // //} // //catch (Exception e) // //{ // // SilverlightLFC.common.Environment.ShowMessage(e.Message); // //} //} //bool IsTesting = false; //public void Begin() //{ // if (IsTesting) { return; } // IsTesting = true; // time.Interval = TimeSpan.FromSeconds(2); // time.Tick += new EventHandler(time_Tick); // ParameterList.Clear(); // PreProcess(); // pi = 0; // time.Start(); //} //public void PreProcess() //{ // try // { // t.setChart(ChartPhoto.getPhoto()); // //t.PhotoTestProc += new PhotoTestProcessHandler(t_PhotoTestProc); // t.CorrectISO12233Chart(); // t.BeginAnalyse(); // processbar.Value = 5; // } // catch (Exception xe)//未知的异常 // { // if (xe is LFCException)//已经是系统约定的错误类型,直接往上抛 // { // SilverlightLFC.common.Environment.ShowMessage(xe.Message); // } // else // { // SilverlightLFC.common.Environment.ShowMessage("测试卡矫正错误,请检查照片"); // //throw new SilverlightLFC.common.LFCException("测试卡矫正错误", null); // } // } //} //public void TestFinish() //{ // //ResultPanel.Height = 25 * 11; // //IsTested = true; // //TestProject.TestHtml.Add(WriteHTML()); // time.Tick -= new EventHandler(time_Tick); // processbar.Value = 100; // EndTime = DateTime.Now; // IsTesting = false; // pi = 0; // ToolTipService.SetToolTip(processbar, "本次测试耗时(ms):" + (EndTime - BeginTime).TotalMilliseconds.ToString()); // //time.Start(); //} //void time_Tick(object sender, EventArgs e) //{ // time.Stop(); // pi++; // if (pi == 1) { TestRayleiResolution(); } // if (pi == 2) { TestHMTF(); } // if (pi == 3) { TestVMTF(); } // if (pi == 4) { TestHDispersiveness(); } // if (pi == 5) { TestVDispersiveness(); } // if (pi == 6) { TestFinish(); return; } // time.Start(); //} void TestRayleiResolution() { try { BeginTime = DateTime.Now; long r = (testHelper.CurrentChart as ISO12233ExChart).getLPResoveLines(); buttonRayleiResolution.Content = "分辨率(中央):" + r.ToString() + " LW/PH"; buttonRayleiResolution.SetValue(ToolTipService.ToolTipProperty, "利用瑞利判据,直观判断相机分辨率,数据表示在一张照片里面可以分辨的垂直线条的数量"); EndTime = DateTime.Now; LParameter lp = testHelper.getNewParameter("ISO2233Ex测试卡", r, BeginTime, EndTime); lp.Name = "中央瑞利分辨率"; lp.Memo = "利用瑞利判据,直观判断相机分辨率,数据表示在一张照片里面可以分辨的垂直线条的数量"; lp.Dimension = "LW/PH"; //lp.TestChart = testHelper.CurrentChart.ChartPhoto; //lp.TestWay = "ISO2233Ex测试卡"; //lp.TestTime = EndTime; //lp.SpendTime = (EndTime - BeginTime).TotalMilliseconds; //lp.Value = r; testHelper.ParameterList.Add(lp); //processbar.Value = 20; //time.Start(); } catch (Exception xe)//未知的异常 { testHelper.ProcessError(xe, "瑞丽判据测试错误"); } }
public void TestWaveQ() { try { BeginTime = DateTime.Now; decimal r = (testHelper.CurrentChart as XMarkChart).getWaveQ() * 100; //Button li = new Button(); //li.Name = "WaveQ"; buttonWaveQ.Content = "成像一致性:" + r.ToString() + " %"; //li.Click += new RoutedEventHandler(XMarkWaveQ_Click); buttonWaveQ.SetValue(ToolTipService.ToolTipProperty, "数据表示照片里面还原正弦灰度区域的能力,完全还原时为0,差异越大数据越大"); //ResultPanel.Children.Add(li); EndTime = DateTime.Now; LParameter lp = testHelper.getNewParameter("XMark测试卡", Convert.ToDouble(r), BeginTime, EndTime); lp.Name = "成像一致性"; lp.Memo = "数据表示照片里面还原正弦灰度区域的能力,完全还原时为0,差异越大数据越大"; lp.Dimension = "%"; //lp.TestWay = "XMark测试卡"; //lp.TestTime = EndTime; //lp.SpendTime = (EndTime - BeginTime).TotalMilliseconds; //lp.Value = Convert.ToDouble(r); //lp.TestWay = t.ChartPhoto; testHelper.ParameterList.Add(lp); //processbar.Value = 80; //time.Start(); //t.sendProcEvent(true, ""); //bw.ReportProgress(100, li); //processbar.Value = 100; } catch (Exception xe)//未知的异常 { testHelper.ProcessError(xe, "计算成像一致性错误"); } }
void TestNoise() { try { BeginTime = DateTime.Now; decimal d = Convert.ToDecimal((testHelper.CurrentChart as XRiteColorChart).getNoiseNum(25)) * 100; buttonNoise.Content = "噪点:" + d.ToString() + " %"; buttonNoise.SetValue(ToolTipService.ToolTipProperty, "数据表示在一张照片里面可以分辨的噪点数量"); EndTime = DateTime.Now; LParameter lp = testHelper.getNewParameter("XRite色标测试卡", Convert.ToDouble(d), BeginTime, EndTime); lp.Name = "噪点"; lp.Memo = "数据表示在一张照片里面可以分辨的噪点数量"; lp.Dimension = "%"; //lp.TestWay = "XRite色标测试卡"; //lp.TestTime = EndTime; //lp.SpendTime = (EndTime - BeginTime).TotalMilliseconds; //lp.Value = Convert.ToDouble(d); testHelper.ParameterList.Add(lp); //processbar.Value = 95; //time.Start(); } catch (Exception xe)//未知的异常 { testHelper.ProcessError(xe, "计算噪点错误"); } }
void TestVDispersiveness() { try{ BeginTime = DateTime.Now; decimal d = (testHelper.CurrentChart as ISO12233Chart).getVDispersiveness(); buttonVDispersiveness.Content = "色散(垂直线):" + d.ToString() + " pxl"; buttonVDispersiveness.SetValue(ToolTipService.ToolTipProperty, "利用垂直线条测试,接近边缘色散程度,数据表示红绿蓝三原色在边界分离的程度,无色散时为0"); EndTime = DateTime.Now; LParameter lp = testHelper.getNewParameter("ISO2233测试卡", Convert.ToDouble(d), BeginTime, EndTime); lp.Name = "色散(垂直线)"; lp.Memo = "利用垂直线条测试,接近边缘色散程度,数据表示红绿蓝三原色在边界分离的程度,无色散时为0"; lp.Dimension = "Pix"; //lp.TestChart = testHelper.CurrentChart.ChartPhoto; //lp.TestWay = "ISO2233测试卡"; //lp.TestTime = EndTime; //lp.SpendTime = (EndTime - BeginTime).TotalMilliseconds; //lp.Value = Convert.ToDouble(d); testHelper.ParameterList.Add(lp); //processbar.Value = 95; //time.Start(); } catch (Exception xe)//未知的异常 { testHelper.ProcessError(xe, "色散(垂直线)测试错误"); } }
public void TestGray() { if (!testHelper.TestChartNull()) { return; } try{ //progressbar.Value = 0; BeginTime = DateTime.Now; //t.setChart(ChartPhoto.getPhoto()); double d = (testHelper.CurrentChart as GrayChart).getBrightChangesValue(); //TextValue.Text = d.ToString(); EndTime = DateTime.Now; LParameter lp = testHelper.getNewParameter("灰度测试卡", d, BeginTime, EndTime); lp.Name = "亮度变化"; lp.Memo = "查看照片亮度变化"; lp.Dimension = ""; //lp.TestChart = testHelper.CurrentChart.ChartPhoto; testHelper.ParameterList.Add(lp); testHelper.ShowTestResult(TextValue, "亮度变化", null); TestGB(); //progressbar.Value = 100; } catch (Exception xe)//未知的异常 { testHelper.ProcessError(xe, "灰度计算错误"); } }
public void TestNoise() { try { BeginTime = DateTime.Now; decimal r = (testHelper.CurrentChart as XMarkChart).getNoiseNum() * 100; //Button li = new Button(); //li.Name = "Noise"; buttonNoise.Content = "噪点:" + r.ToString() + " %"; //li.Click += new RoutedEventHandler(XMarkNoise_Click); buttonNoise.SetValue(ToolTipService.ToolTipProperty, "数据表示在一张照片里面可以分辨的噪点数量"); //ResultPanel.Children.Add(li); EndTime = DateTime.Now; LParameter lp = testHelper.getNewParameter("XMark测试卡", Convert.ToDouble(r), BeginTime, EndTime); lp.Name = "噪点"; lp.Memo = "数据表示在一张照片里面可以分辨的噪点数量"; lp.Dimension = "%"; //lp.TestWay = "XMark测试卡"; //lp.TestTime = EndTime; //lp.SpendTime = (EndTime - BeginTime).TotalMilliseconds; //lp.Value = Convert.ToDouble(r); //lp.TestWay = t.ChartPhoto; testHelper.ParameterList.Add(lp); //processbar.Value = 60; //time.Start(); //t.sendProcEvent(true, ""); //bw.ReportProgress(25, li); //processbar.Value = 50; } catch (Exception xe)//未知的异常 { testHelper.ProcessError(xe, "计算噪点错误"); } }
void TestVMTF() { try { BeginTime = DateTime.Now; double r = (testHelper.CurrentChart as ISO12233Chart).getVEdgeResoveLines(); buttonVMTF.Content = "分辨率(垂直线):" + r.ToString() + " LW/PH"; buttonVMTF.SetValue(ToolTipService.ToolTipProperty, "利用垂直线条测试分辨率,接近相机的边缘分辨率,数据表示在一张照片里面可以分辨的垂直线条的数量"); EndTime = DateTime.Now; LParameter lp = testHelper.getNewParameter("ISO2233测试卡", Convert.ToDouble(r), BeginTime, EndTime); lp.Name = "中央分辨率(垂直线)"; lp.Memo = "利用垂直线条测试分辨率,接近相机的边缘分辨率,数据表示在一张照片里面可以分辨的垂直线条的数量"; lp.Dimension = "LW/PH"; //lp.TestChart = testHelper.CurrentChart.ChartPhoto; //lp.TestWay = "ISO2233测试卡"; //lp.TestTime = EndTime; //lp.SpendTime = (EndTime - BeginTime).TotalMilliseconds; //lp.Value = r; testHelper.ParameterList.Add(lp); //processbar.Value = 60; //time.Start(); } catch (Exception xe)//未知的异常 { testHelper.ProcessError(xe, "中央分辨率(垂直线线)测试错误"); } }
public void TestWhiteBanlance() { try { BeginTime = DateTime.Now; decimal r = (testHelper.CurrentChart as XMarkChart).getWhiteBanlance() * 100; //Button li = new Button(); //li.Name = "AutoWhiteBalanceDistance"; buttonWhiteBanlance.Content = "白平衡能力:" + r.ToString() + " %"; //li.Click += new RoutedEventHandler(XMarkWhiteBalance_Click); buttonWhiteBanlance.SetValue(ToolTipService.ToolTipProperty, "数据表示拍摄灰度的时刻偏离灰度的程度,完全准确时为0"); //ResultPanel.Children.Add(li); EndTime = DateTime.Now; LParameter lp = testHelper.getNewParameter("XMark测试卡", Convert.ToDouble(r), BeginTime, EndTime); lp.Name = "白平衡能力"; lp.Memo = "数据表示拍摄灰度的时刻偏离灰度的程度,完全准确时为0"; lp.Dimension = "%"; //lp.TestWay = "XMark测试卡"; //lp.TestTime = EndTime; //lp.SpendTime = (EndTime - BeginTime).TotalMilliseconds; //lp.Value = Convert.ToDouble(r); //lp.TestWay = t.ChartPhoto; testHelper.ParameterList.Add(lp); //processbar.Value = 95; //time.Start(); //t.sendProcEvent(true, ""); //bw.ReportProgress(30, li); //processbar.Value = 60; } catch (Exception xe)//未知的异常 { testHelper.ProcessError(xe, "计算白平衡误差错误"); } }
public void TestPurplePercent() { try { BeginTime = DateTime.Now; decimal r = Convert.ToDecimal((testHelper.CurrentChart as XMarkChart).getPurplePercent()) * 100; //Button li = new Button(); //li.Name = "PurplePercent"; buttonPurplePercent.Content = "紫边像素比例:" + r.ToString() + " %"; //li.Click += new RoutedEventHandler(PurplePercent_Click); buttonPurplePercent.SetValue(ToolTipService.ToolTipProperty, "数据表示照片里面四角的紫色像素比例"); //ResultPanel.Children.Add(li); EndTime = DateTime.Now; LParameter lp = testHelper.getNewParameter("XMark测试卡", Convert.ToDouble(r), BeginTime, EndTime); lp.Name = "紫边像素比例"; lp.Memo = "数据表示照片里面四角的紫色像素比例"; lp.Dimension = "%"; //lp.TestWay = "XMark测试卡"; //lp.TestTime = EndTime; //lp.SpendTime = (EndTime - BeginTime).TotalMilliseconds; //lp.Value = Convert.ToDouble(r); //lp.TestWay = t.ChartPhoto; testHelper.ParameterList.Add(lp); //processbar.Value = 70; //time.Start(); //t.sendProcEvent(true, ""); //bw.ReportProgress(100, li); } catch (Exception xe)//未知的异常 { testHelper.ProcessError(xe, "计算紫边像素比例错误"); } }
public void TestVEdgeDispersiveness() { try { BeginTime = DateTime.Now; decimal r = Convert.ToDecimal((testHelper.CurrentChart as XMarkChart).getVEdgeDispersiveness()); //Button li = new Button(); //li.Name = "VDispersiveness"; buttonVDispersiveness.Content = "边缘色散:" + r.ToString() + " Pxl"; buttonVDispersiveness.SetValue(ToolTipService.ToolTipProperty, "数据表示红绿蓝三原色在边界分离的程度,也就是平均分离到几个像素,无色散时为0"); //li.Click += new RoutedEventHandler(VDispersiveness_Click); //ResultPanel.Children.Add(li); EndTime = DateTime.Now; LParameter lp = testHelper.getNewParameter("XMark测试卡", Convert.ToDouble(r), BeginTime, EndTime); lp.Name = "边缘色散"; lp.Memo = "利用垂直边界测试,数据表示红绿蓝三原色在边界分离的程度,也就是平均分离到几个像素,无色散时为0"; lp.Dimension = "Pix"; //lp.TestWay = "XMark测试卡"; //lp.TestTime = EndTime; //lp.SpendTime = (EndTime - BeginTime).TotalMilliseconds; //lp.Value = Convert.ToDouble(r); //lp.TestChart = testHelper.CurrentChart.ChartPhoto; testHelper.ParameterList.Add(lp); //processbar.Value = 30; //time.Start(); } catch (Exception xe)//未知的异常 { testHelper.ProcessError(xe, "测试边缘色散(垂直条)错误"); } }
public void TestVEdgeResoveLines() { try { BeginTime = DateTime.Now; decimal r = (testHelper.CurrentChart as XMarkChart).getVEdgeResoveLines(); //Button li = new Button(); //li.Name = "VResolvingPower"; buttonVEdgeResoveLines.Content = "边缘分辨率:" + r.ToString() + " lw/ph"; //li.Click += new RoutedEventHandler(XMarkVMTF_Click); buttonVEdgeResoveLines.SetValue(ToolTipService.ToolTipProperty, "数据表示在一张照片里面可以分辨的水平线条的数量"); //ResultPanel.Children.Add(li); EndTime = DateTime.Now; LParameter lp = testHelper.getNewParameter("XMark测试卡", Convert.ToDouble(r), BeginTime, EndTime); lp.Name = "边缘分辨率"; lp.Memo = "利用垂直边界测试,数据表示在一张照片里面可以分辨的水平线条的数量"; lp.Dimension = "lw/ph"; //lp.TestWay = "XMark测试卡"; //lp.TestTime = EndTime; //lp.SpendTime = (EndTime - BeginTime).TotalMilliseconds; //lp.Value = Convert.ToDouble(r); //lp.TestChart = testHelper.CurrentChart.ChartPhoto; testHelper.ParameterList.Add(lp); //processbar.Value = 40; //time.Start(); //t.sendProcEvent(true, ""); //bw.ReportProgress(60, li); //processbar.Value = 90; } catch (Exception xe)//未知的异常 { testHelper.ProcessError(xe, "利用垂直边界测试边缘分辨率错误"); } }
//public List<IParameter> ParameterList = new List<IParameter>(); //public void WriteToHTML() //{ // string s = ""; // s = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN/\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"><html xmlns=\"http://www.w3.org/1999/xhtml\">"; // s = s + "<head><meta http-equiv=\"Content-Language\" content=\"zh-cn\" /><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />"; // s = s + "<title>shiyan</title><style type=\"text/css\">.style1 {text-align: left;}.style2 {margin-left: 40px;}.style3 { text-decoration: underline; margin-left: 40px;}</style></head>"; // s = s + "<body>"; // s = s + "<h2>测试结果信息:</h2>"; // foreach (LParameter lp in ParameterList) // { // s = s + "指标名称:" + lp.Name; // s = s + "<p class=\"style2\">说明:" + lp.Memo + "</p>"; // s = s + "<p>测试时间:" + lp.TestTime.ToString() + "</p>"; // if (lp.Value != Double.NaN) // { // s = s + "<p>测试值:" + lp.Value.ToString() + lp.Dimension + "</p>"; // } // } // s = s + "</body></html>"; // SilverlightLFC.common.Environment.getEnvironment().SaveFileString(s, "HTML文件|*.html"); // //SaveFileDialog of = new SaveFileDialog(); // //of.Filter = "HTML文件|*.html"; // //of.ShowDialog(); // //byte[] sb = System.Text.Encoding.Unicode.GetBytes(s); // //Stream fs = of.OpenFile(); // //if (fs != null) // //{ // // fs.Write(sb, 0, sb.Length); // //} //} //System.Windows.Threading.DispatcherTimer time = new System.Windows.Threading.DispatcherTimer(); //int pi = 0; //void autoTest() //{ // if (!TestChartNull()) { return; } // BeginTime = DateTime.Now; // Begin(); // EndTime = DateTime.Now; //} //bool IsTesting = false; //public void Begin() //{ // if (IsTesting) { return; } // IsTesting = true; // ParameterList.Clear(); // time.Interval = TimeSpan.FromSeconds(2); // time.Tick += new EventHandler(time_Tick); // PreProcess(); // pi = 0; // time.Start(); //} //public void PreProcess() //{ // try // { // t.setChart(ChartPhoto.getPhoto()); // t.PhotoTestProc += new PhotoTestProcessHandler(t_PhotoTestProc); // //t.corrCorrectXMark(); // t.BeginAnalyse(); // processbar.Value = 5; // } // catch (Exception xe)//未知的异常 // { // if (xe is LFCException)//已经是系统约定的错误类型,直接往上抛 // { // SilverlightLFC.common.Environment.ShowMessage(xe.Message); // } // else // { // SilverlightLFC.common.Environment.ShowMessage("测试卡矫正错误,请检查照片"); // //throw new SilverlightLFC.common.LFCException("测试卡矫正错误", null); // } // } //} //public void TestFinish() //{ // time.Tick -= new EventHandler(time_Tick); // processbar.Value = 100; // IsTesting = false; // EndTime = DateTime.Now; // pi = 0; // ToolTipService.SetToolTip(processbar, "本次测试耗时(ms):" + (EndTime - BeginTime).TotalMilliseconds.ToString()); //} //void time_Tick(object sender, EventArgs e) //{ // time.Stop(); // pi++; // if (pi == 1) { TestWhiteBalance(); } // if (pi == 2) { TestColorTrendValue(); } // if (pi == 3) { TestNoise(); } // if (pi == 4) { TestFinish(); return; } // time.Start(); //} void TestWhiteBalance() { try { BeginTime = DateTime.Now; decimal d = Convert.ToDecimal((testHelper.CurrentChart as XRiteColorChart).getWhiteBanlance()) * 100; buttonWhiteBalance.Content = "白平衡误差:" + d.ToString(); buttonWhiteBalance.Content = buttonWhiteBalance.Content + " %"; buttonWhiteBalance.SetValue(ToolTipService.ToolTipProperty, "数据表示拍摄灰度的时刻偏离灰度的程度,完全准确时为0"); EndTime = DateTime.Now; LParameter lp = testHelper.getNewParameter("XRite色标测试卡", Convert.ToDouble(d), BeginTime, EndTime); lp.Name = "白平衡误差"; lp.Memo = "数据表示拍摄灰度的时刻偏离灰度的程度,完全准确时为0"; lp.Dimension = "%"; //lp.TestWay = "XRite色标测试卡"; //lp.TestTime = EndTime; //lp.SpendTime = (EndTime - BeginTime).TotalMilliseconds; //lp.Value = Convert.ToDouble(d); testHelper.ParameterList.Add(lp); //processbar.Value = 20; //time.Start(); } catch (Exception xe)//未知的异常 { testHelper.ProcessError(xe, "计算白平衡误差错误"); } }
void TestColorTrendValue() { try { BeginTime = DateTime.Now; decimal d = (testHelper.CurrentChart as XRiteColorChart).getColorDistance(); buttonColorTrendValue.Content = "色彩趋向误差:" + d.ToString() + " 度"; buttonColorTrendValue.SetValue(ToolTipService.ToolTipProperty, "数据表示在拍摄标准颜色时候色调的偏差,完全准确时为0"); EndTime = DateTime.Now; LParameter lp = testHelper.getNewParameter("XRite色标测试卡", Convert.ToDouble(d), BeginTime, EndTime); lp.Name = "色彩趋向差异"; lp.Memo = "数据表示在拍摄标准颜色时候色调的偏差,完全准确时为0"; lp.Dimension = "度"; //lp.TestWay = "XRite色标测试卡"; //lp.TestTime = EndTime; //lp.SpendTime = (EndTime - BeginTime).TotalMilliseconds; //lp.Value = Convert.ToDouble(d); testHelper.ParameterList.Add(lp); //processbar.Value = 70; //time.Start(); } catch (Exception xe)//未知的异常 { testHelper.ProcessError(xe, "计算色彩趋向误差错误"); } }
//public List<IParameter> ParameterList = new List<IParameter>(); //BackgroundWorker bw = new BackgroundWorker(); //public event DefE ce; //void autoTest() //{ //if (!TestChartNull()) { return; } //try{ // Begin(); //EndTime = DateTime.Now; //} //catch (Exception e) //{ // SilverlightLFC.common.Environment.ShowMessage(e.Message); //} //} //void InitChartTestList() //{ // tl.Clear(); // foreach (WriteableBitmap tb in lPhotoList1.PhotoList) // { // XMarkChart t = new XMarkChart(tb); // tl.Add(tb, t); // } //} //bool IsTesting = false; //public void BeginAll() //{ // if (IsTesting) { return; } // BeginTime = DateTime.Now; // IsTesting = true; // ParameterList.Clear(); // time.Interval = TimeSpan.FromSeconds(2); // processbar.Value = 0; // time.Tick += new EventHandler(time_Tick); // TaskList.Clear(); // foreach (WriteableBitmap tb in lPhotoList1.PhotoList) // { // TaskList.Add(MoveToNextPhoto); // TaskList.Add(PreProcess); // TaskList.Add(TestAberration); // TaskList.Add(TestBrightChanges); // TaskList.Add(TestColorTrend); // TaskList.Add(TestHEdgeDispersiveness); // TaskList.Add(TestVEdgeDispersiveness); // TaskList.Add(TestHEdgeResoveLines); // TaskList.Add(TestVEdgeResoveLines); // TaskList.Add(TestLatitude); // TaskList.Add(TestNoise); // TaskList.Add(TestPurplePercent); // TaskList.Add(TestWaveQ); // TaskList.Add(TestWhiteBanlance); // } // pi = -1; // PhotoIndex = -1; // time.Start(); //} //public void Begin() //{ // if (IsTesting) { return; } // BeginTime = DateTime.Now; // IsTesting = true; // ParameterList.Clear(); // processbar.Value = 0; // time.Interval = TimeSpan.FromSeconds(2); // time.Tick += new EventHandler(time_Tick); // //PreProcess(); // TaskList.Clear(); // PhotoIndex = lPhotoList1.getPhotoIndex(ChartPhoto.getPhoto()); // CurrentChart = tl[ChartPhoto.getPhoto()]; // TaskList.Add(PreProcess); // TaskList.Add(TestAberration); // TaskList.Add(TestBrightChanges); // TaskList.Add(TestColorTrend); // TaskList.Add(TestHEdgeDispersiveness); // TaskList.Add(TestVEdgeDispersiveness); // TaskList.Add(TestHEdgeResoveLines); // TaskList.Add(TestVEdgeResoveLines); // TaskList.Add(TestLatitude); // TaskList.Add(TestNoise); // TaskList.Add(TestPurplePercent); // TaskList.Add(TestWaveQ); // TaskList.Add(TestWhiteBanlance); // pi = -1; // time.Start(); //} //int pi = 0; //List<ParameterTest> TaskList = new List<ParameterTest>(); //double stepPercent; //void time_Tick(object sender, EventArgs e) //{ // time.Stop(); // pi++; // if (pi < TaskList.Count ) // { // //pi++; // TaskList[pi](); // processbar.Value = processbar.Value + (100d / TaskList.Count); // time.Start(); // } // else // { // TestFinish(); // ShowTestResult(); // return; // } // //if (pi == 1) { TestAberration(); } // //if (pi == 2) { TestBrightChanges(); } // //if (pi == 3) { TestColorTrend(); } // //if (pi == 4) { TestHEdgeDispersiveness(); } // //if (pi == 5) { TestVEdgeDispersiveness(); } // //if (pi == 6) { TestHEdgeResoveLines(); } // //if (pi == 7) { TestVEdgeResoveLines(); } // //if (pi == 8) { TestLatitude(); } // //if (pi == 9) { TestNoise(); } // //if (pi == 10) { TestPurplePercent(); } // //if (pi == 11) { TestWaveQ(); } // //if (pi == 12) { TestWhiteBanlance(); } // //if (pi == 13) { TestFinish(); return; } // //time.Start(); //} //int PhotoIndex = -1; //public void MoveToNextPhoto() //{ // PhotoIndex++; // CurrentChart = tl[lPhotoList1.getPhoto(PhotoIndex)]; //} //void ProcessError(Exception xe, string DefaultStr) //{ // IsTesting = false; // time.Stop(); // time.Tick -= new EventHandler(time_Tick); // if (xe is LFCException)//已经是系统约定的错误类型,直接往上抛 // { // SilverlightLFC.common.Environment.ShowMessage(xe.Message); // } // else // { // SilverlightLFC.common.Environment.ShowMessage(DefaultStr); // } //} //XMarkChart CurrentChart; //public void PreProcess() //{ // try // { // //CurrentChart = tl[lPhotoList1.getPhoto(PhotoIndex)]; // //t.setChart(); // //t.PhotoTestProc += new PhotoTestProcessHandler(t_PhotoTestProc); // CurrentChart.CorrectChart(); // CurrentChart.BeginAnalyse(); // //processbar.Value = 5; // //time.Start(); // } // catch (Exception xe)//未知的异常 // { // ProcessError(xe,"测试卡矫正错误,请检查照片"); // } //} //DateTime _BeginTime, _EndTime; //LParameter getNewParameter(double r) //{ // LParameter lp = new LParameter(); // lp.TestTime = _EndTime; // lp.SpendTime = (_EndTime - _BeginTime).TotalMilliseconds; // lp.Value = r; // lp.TestChart = testHelper.CurrentChart.ChartPhoto; // lp.TestWay = "XMark测试卡"; // return lp; //} public void TestAberration() { try { BeginTime = DateTime.Now; //Button li = new Button(); decimal r = (testHelper.CurrentChart as XMarkChart).getAberration() * 100; //ShowTestResult(buttonAberration, "畸变"); buttonAberration.Content = "畸变:" + r.ToString() + " %"; buttonAberration.SetValue(ToolTipService.ToolTipProperty, "数据表示照片里面几何变形程度,正表示桶形畸变,负表示枕型畸变,0为无畸变"); //ResultPanel.Children.Add(li); //t.sendProcEvent(true, ""); EndTime = DateTime.Now; LParameter lp = testHelper.getNewParameter("XMark测试卡", Convert.ToDouble(r), BeginTime, EndTime); lp.Name = "畸变"; lp.Memo = "数据表示照片里面几何变形程度,正表示桶形畸变,负表示枕型畸变,0为无畸变"; lp.Dimension = "%"; //lp.TestWay = "XMark测试卡"; //lp.TestTime = _EndTime; //lp.SpendTime = (_EndTime - _BeginTime).TotalMilliseconds; //lp.Value = Convert.ToDouble(r); //lp.TestWay = t.ChartPhoto; //lp.TestChart = testHelper.CurrentChart.ChartPhoto; testHelper.ParameterList.Add(lp); //processbar.Value = 10; //time.Start(); } catch (Exception xe)//未知的异常 { testHelper.ProcessError(xe, "测试畸变错误"); } }
public LParameter getNewParameter(string TestWay, double r, DateTime _BeginTime, DateTime _EndTime) { LParameter lp = new LParameter(TestWay, CurrentChart); lp.TestTime = _EndTime; lp.SpendTime = (_EndTime - _BeginTime).TotalMilliseconds; lp.Value = r; //lp.TestChart = CurrentChart.ChartPhoto; //lp.TestWay = TestWay; return(lp); }
public void TestLatitude() { if (!testHelper.TestChartNull()) { return; } //processbar.Value = 0; BeginTime = DateTime.Now; try { (testHelper.CurrentChart as ITEGrayscaleChart).ConstGradeL = lynxUpDownConstL.DoubleValue; int v = (testHelper.CurrentChart as ITEGrayscaleChart).getGrayGrade(lynxUpDownH.IntValue, lynxUpDownW.IntValue); EndTime = DateTime.Now; //textBlockLatitude.Text = v.ToString(); LParameter lp = testHelper.getNewParameter("ITE灰阶", v, BeginTime, EndTime); lp.Name = "灰阶"; lp.Memo = "数据表示在一张照片里面可以分辨的灰阶亮度级别"; lp.Dimension = "级"; testHelper.ParameterList.Add(lp); ShowTestResult(lChartPhoto.getPhoto()); //List<double> dl = (testHelper.CurrentChart as ITEGrayscaleChart).getHLineAveL(lynxUpDownH.IntValue, lynxUpDownW.IntValue); //comboBoxLGrade.Items.Clear(); //canvasLatitude.Children.Clear(); //dg.DrawBrightHistogram(dl); if (v == 11) { ChartTestHelper.setGBSign(true, gridGB); } else { ChartTestHelper.setGBSign(false, gridGB); } } catch (Exception xe) { testHelper.ProcessError(xe, "灰阶计算错误,请检查照片"); } EndTime = DateTime.Now; //processbar.Value = 100; }
void TestBottomBlackLineNum() { try { BeginTime = DateTime.Now; double r = (testHelper.CurrentChart as AberrationChart).getBottomBlackLineNum(); EndTime = DateTime.Now; LParameter lp = testHelper.getNewParameter("畸变测试卡", r, BeginTime, EndTime); lp.Name = "畸变卡底部线条数"; lp.Memo = "查看照片两端垂直底部区域的线条数"; lp.Dimension = ""; //lp.TestChart = testHelper.CurrentChart.ChartPhoto; testHelper.ParameterList.Add(lp); testHelper.ShowTestResult(textBlockBottomBlackLineNum, "畸变卡底部线条数", null); } catch (Exception xe)//未知的异常 { testHelper.ProcessError(xe, "畸变计算错误"); } }
void TestAberration() { try { BeginTime = DateTime.Now; double r = (testHelper.CurrentChart as AberrationChart).getAberration(); EndTime = DateTime.Now; LParameter lp = testHelper.getNewParameter("畸变测试卡", r, BeginTime, EndTime); lp.Name = "畸变"; lp.Memo = "查看照片两端垂直黑色线条的弯曲程度"; lp.Dimension = ""; //lp.TestChart = testHelper.CurrentChart.ChartPhoto; testHelper.ParameterList.Add(lp); testHelper.ShowTestResult(TextAberration, "畸变", null); } catch (Exception xe)//未知的异常 { testHelper.ProcessError(xe, "畸变计算错误"); } }
void TestDEV() { try { BeginTime = DateTime.Now; double r = (testHelper.CurrentChart as GrayChart).ptp.getGBDEv(lChartPhoto1.getPhoto(), lynxUpDownGamma.DoubleValue, lynxUpDownP.DoubleValue); EndTime = DateTime.Now; LParameter lp = testHelper.getNewParameter("灰度测试卡", r, BeginTime, EndTime); lp.Name = "曝光量误差"; lp.Memo = "计算照片中央明度来确定曝光量"; lp.Dimension = ""; testHelper.ParameterList.Add(lp); WriteableBitmap cb = (testHelper.CurrentChart as GrayChart).ptp.getImageArea(lChartPhoto1.getPhoto(), lChartPhoto1.getPhoto().PixelWidth / 4, lChartPhoto1.getPhoto().PixelHeight / 4, lChartPhoto1.getPhoto().PixelWidth / 2, lChartPhoto1.getPhoto().PixelHeight / 2); double l = (testHelper.CurrentChart as GrayChart).ptp.getAverageColorL(cb); lp = testHelper.getNewParameter("灰度测试卡", l, BeginTime, EndTime); lp.Name = "中央平均明度"; lp.Memo = "照片中央明度"; lp.Dimension = ""; testHelper.ParameterList.Add(lp); if (Math.Abs(r) >= 1) { ChartTestHelper.setGBSign(false, gridGB); } else { ChartTestHelper.setGBSign(true, gridGB); } //testHelper.ShowTestResult(TextAberration, "曝光量", null); ShowTestResult(lChartPhoto1.getPhoto()); } catch (Exception xe)//未知的异常 { testHelper.ProcessError(xe, "曝光量计算错误"); } }
public void TestLatitude() { if (!testHelper.TestChartNull()) { return; } //processbar.Value = 0; BeginTime = DateTime.Now; try { //t.setChart(ChartPhoto.getPhoto()); int h = lynxUpDown1.IntValue; if (h == 0) { h = 7; lynxUpDown1.LongValue = 7; } double v = (testHelper.CurrentChart as KDGrayChart).getLatitude(h); EndTime = DateTime.Now; textBlockLatitude.Text = v.ToString(); LParameter lp = testHelper.getNewParameter("柯达灰阶", v, BeginTime, EndTime); lp.Name = "宽容度"; lp.Memo = "数据表示在一张照片里面可以分辨的亮度级别"; lp.Dimension = "级"; //lp.TestChart = testHelper.CurrentChart.ChartPhoto; testHelper.ParameterList.Add(lp); //List<double> dl = (testHelper.CurrentChart as KDGrayChart).getHLine(ChartPhoto.getPhoto().PixelHeight/2); //DrawGraphic dg = new DrawGraphic(canvasLatitude); //dg.DrawBrightHistogram(dl); } catch (Exception xe) { testHelper.ProcessError(xe, "宽容度计算错误,请检查照片"); } EndTime = DateTime.Now; //processbar.Value = 100; }
//public List<string> ParameterHtml = new List<string>(); //public void WriteToHTML() //{ // string s = ""; // s = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN/\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"><html xmlns=\"http://www.w3.org/1999/xhtml\">"; // s = s + "<head><meta http-equiv=\"Content-Language\" content=\"zh-cn\" /><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />"; // s = s + "<title>shiyan</title><style type=\"text/css\">.style1 {text-align: left;}.style2 {margin-left: 40px;}.style3 { text-decoration: underline; margin-left: 40px;}</style></head>"; // s = s + "<body>"; // s = s + "<h2>测试结果信息:</h2>"; // foreach (LParameter lp in ParameterList) // { // s = s + "指标名称:" + lp.Name; // s = s + "<p class=\"style2\">说明:" + lp.Memo + "</p>"; // s = s + "<p>测试时间:" + lp.TestTime.ToString() + "</p>"; // if (lp.Value != Double.NaN) // { // s = s + "<p>测试值:" + lp.Value.ToString() + lp.Dimension + "</p>"; // } // } // s = s + "</body></html>"; // SilverlightLFC.common.Environment.getEnvironment().SaveFileString(s, "HTML文件|*.html"); // //SaveFileDialog of = new SaveFileDialog(); // //of.Filter = "HTML文件|*.html"; // //of.ShowDialog(); // //byte[] sb = System.Text.Encoding.Unicode.GetBytes(s); // //Stream fs = of.OpenFile(); // //if (fs != null) // //{ // // fs.Write(sb, 0, sb.Length); // //} //} //ISO12233Chart t = new ISO12233Chart(); void TestRayleiResolution() { try { BeginTime = DateTime.Now; long r = (testHelper.CurrentChart as ISO12233Chart).getLPResoveLines(); buttonRayleiResolution.Content = "分辨率(中央):" + r.ToString() + " LW/PH"; buttonRayleiResolution.SetValue(ToolTipService.ToolTipProperty, "利用瑞利判据,直观判断相机分辨率,数据表示在一张照片里面可以分辨的垂直线条的数量"); EndTime = DateTime.Now; LParameter lp = testHelper.getNewParameter("ISO2233测试卡", Convert.ToDouble(r), BeginTime, EndTime); lp.Name = "中央瑞利分辨率"; lp.Memo = "利用瑞利判据,直观判断相机分辨率,数据表示在一张照片里面可以分辨的垂直线条的数量"; lp.Dimension = "LW/PH"; //lp.TestWay = "ISO2233测试卡"; //lp.TestTime = EndTime; //lp.SpendTime = (EndTime - BeginTime).TotalMilliseconds; //lp.Value = r; testHelper.ParameterList.Add(lp); //processbar.Value = 20; //time.Start(); } catch (Exception xe)//未知的异常 { testHelper.ProcessError(xe, "中央分辨率(瑞利判据)测试错误"); //if (xe is LFCException)//已经是系统约定的错误类型,直接往上抛 //{ // SilverlightLFC.common.Environment.ShowMessage(xe.Message); //} //else //{ // SilverlightLFC.common.Environment.ShowMessage("中央分辨率(瑞利判据)测试错误"); // //throw new SilverlightLFC.common.LFCException("中央分辨率(瑞利判据)测试错误", null); //} } }
public void TestBrightChanges() { try { BeginTime = DateTime.Now; decimal r = (testHelper.CurrentChart as XMarkChart).getBrightChanges() * 100; //Button li = new Button(); //li.Name = "TLightingEquality"; buttonBrightChanges.Content = "亮度一致性:" + r.ToString() + " %"; //li.Click += new RoutedEventHandler(XMarkBrightChanges_Click); buttonBrightChanges.SetValue(ToolTipService.ToolTipProperty, "数据表示在照片里面中心亮度和四周亮度的差异,无差异时为0"); //ResultPanel.Children.Add(li); EndTime = DateTime.Now; LParameter lp = testHelper.getNewParameter("XMark测试卡", Convert.ToDouble(r), BeginTime, EndTime); lp.Name = "亮度一致性"; lp.Memo = "数据表示在照片里面中心亮度和四周亮度的差异,无差异时为0"; lp.Dimension = "%"; //lp.TestWay = "XMark测试卡"; //lp.TestTime = _EndTime; //lp.SpendTime = (_EndTime - _BeginTime).TotalMilliseconds; //lp.Value = Convert.ToDouble(r); //lp.TestWay = t.ChartPhoto; //lp.TestChart = testHelper.CurrentChart.ChartPhoto; testHelper.ParameterList.Add(lp); //processbar.Value = 15; //time.Start(); //XMarkTest.px = 30; //SendEvent(3); //t.sendProcEvent(true, ""); //bw.ReportProgress(45, li); //processbar.Value = 80; } catch (Exception xe)//未知的异常 { testHelper.ProcessError(xe, "测试亮度一致性错误"); } }
public void TestColorTrend() { try { BeginTime = DateTime.Now; decimal r = (testHelper.CurrentChart as XMarkChart).getColorDis(); //Button li = new Button(); //li.Name = "ColorTrendValue"; buttonColorTrend.Content = "色彩趋向差异:" + r.ToString() + " 度"; //li.Click += new RoutedEventHandler(XMarkColorDis_Click); buttonColorTrend.SetValue(ToolTipService.ToolTipProperty, "数据表示在拍摄标准颜色时候色调的偏差,完全准确时为0"); //ResultPanel.Children.Add(li); EndTime = DateTime.Now; LParameter lp = testHelper.getNewParameter("XMark测试卡", Convert.ToDouble(r), BeginTime, EndTime); lp.Name = "色彩趋向差异"; lp.Memo = "数据表示在拍摄标准颜色时候色调的偏差,完全准确时为0"; lp.Dimension = "度"; //lp.TestWay = "XMark测试卡"; //lp.TestTime = EndTime; //lp.SpendTime = (EndTime - BeginTime).TotalMilliseconds; //lp.Value = Convert.ToDouble(r); //lp.TestChart = testHelper.CurrentChart.ChartPhoto; testHelper.ParameterList.Add(lp); //processbar.Value = 20; //time.Start(); //t.sendProcEvent(true, ""); //SendEvent(4); //XMarkTest.px = 20; //bw.ReportProgress(20, li); //progressBar.Value = 40; } catch (Exception xe)//未知的异常 { testHelper.ProcessError(xe, "测试色彩趋向误差测试错误"); } }
//public void SaveResult() //{ // OpenFileDialog of = new OpenFileDialog(); // of.Filter = "HTML文件|*.html"; // of.ShowDialog(); // if (of.File != null) // { // string s=WriteToHTML(); // byte[] sb= System.Text.Encoding.Unicode.GetBytes(s); // FileStream fs = of.File.OpenWrite(); // fs.Write(sb, 0, sb.Length); // } //} List <IParameter> ProcessResult() { List <IParameter> pl = new List <IParameter>(); List <string> nl = ResultList.Select(v => v.Name).Distinct().ToList(); List <IParameter> tl = new List <IParameter>(); foreach (string n in nl) { tl = ResultList.Where(v => v.Name == n).ToList(); if (tl.Count > 0) { IParameter p = new LParameter(); p.Name = tl[0].Name + "一共测试:" + tl.Count.ToString(); p.Memo = p.Memo; p.Dimension = tl[0].Dimension; p.SpendTime = tl.Average(pv => pv.SpendTime); p.TestTime = tl.Max(v => v.TestTime); p.TestWay = tl[0].TestWay; p.Value = tl.Average(pv => pv.Value); pl.Add(p); } } return(pl); }
void Test() { if (button1LS.Tag == null) { SilverlightLFC.common.Environment.ShowMessage("请选择0.1半径对角线左边界"); } if (button1RS.Tag == null) { SilverlightLFC.common.Environment.ShowMessage("请选择0.1半径对角线右边界"); } if (button5LS.Tag == null) { SilverlightLFC.common.Environment.ShowMessage("请选择0.5半径对角线左边界"); } if (button5RS.Tag == null) { SilverlightLFC.common.Environment.ShowMessage("请选择0.5半径对角线右边界"); } if (button9LS.Tag == null) { SilverlightLFC.common.Environment.ShowMessage("请选择0.9半径对角线左边界"); } if (button9RS.Tag == null) { SilverlightLFC.common.Environment.ShowMessage("请选择0.9半径对角线右边界"); } BeginTime = DateTime.Now; double _1l = getDistance((button1LS.Tag as Point?).Value, (button1RS.Tag as Point?).Value); double _5l = getDistance((button5LS.Tag as Point?).Value, (button5RS.Tag as Point?).Value); double _9l = getDistance((button9LS.Tag as Point?).Value, (button9RS.Tag as Point?).Value); double r5 = (testHelper.CurrentChart as AbstractTestChart).ptp.getGBAberration(_5l, _1l, 5); double r9 = (testHelper.CurrentChart as AbstractTestChart).ptp.getGBAberration(_9l, _1l, 9); double h = 0.05; if (!checkBoxFocus.IsChecked.Value) { h = 0.07; } if (Math.Abs(r5) < h && Math.Abs(r9) < h) { ChartTestHelper.setGBSign(true, gridGB); } else { ChartTestHelper.setGBSign(false, gridGB); } EndTime = DateTime.Now; LParameter lp = testHelper.getNewParameter("畸变测试卡0.5处", r5, BeginTime, EndTime); lp.Name = "国标畸变测试0.5处"; lp.Memo = "计算照片变形程度测算畸变"; lp.Dimension = ""; testHelper.ParameterList.Add(lp); lp = testHelper.getNewParameter("畸变测试卡0.9处", r9, BeginTime, EndTime); lp.Name = "国标畸变测试0.9处"; lp.Memo = "计算照片变形程度测算畸变"; lp.Dimension = ""; testHelper.ParameterList.Add(lp); ShowTestResult(lChartPhoto1.getPhoto()); }