文章目錄
- 1 Winform 窗口界面 (帶渲染的參數配置控件)
- 2 配置代碼
- 3 運行測試
- 4 不帶渲染的參數配置控件 對比
- 4.1 添加控件
- 4.2 代碼及演示效果
模塊參數配置
本教程介紹如何在VM二次開發中對模塊參數進行配置
1 Winform 窗口界面 (帶渲染的參數配置控件)
VmParamsConfigControl
是不帶渲染的參數配置控件;
VmParamsConfigWithRenderControl
是帶渲染的參數配置控件;
在上一將的基礎上繼續添加渲染及數據結果獲取,顯示在Winform界面 【條碼/一維碼識別】;
在Form1窗口,添加GroupBox 和VmParamsConfigWithRenderControl
控件;
2 配置代碼
在方案執行,按鈕下面添加參數配置代碼
在上一將的基礎上繼續添加渲染及數據結果獲取,顯示在Winform界面 【條碼/一維碼識別】;
第一行代碼為實例化一個模塊;
需要通過字符識別類來定義并實例化一個字符識別模塊對象;
private void button3_Click(object sender, EventArgs e)
{//模塊參數配置//第一行代碼為實例化一個模塊;//需要通過字符識別類來定義并實例化一個字符識別模塊對象;IMVSOcrModuCs.IMVSOcrModuTool ocrTool = (IMVSOcrModuCs.IMVSOcrModuTool)VmSolution.Instance["流程1.字符識別1"];vmParamsConfigWithRenderControl1.ModuleSource = ocrTool;VmSolution.Instance.SyncRun();//此函數,會同步執行一次方案中的所有流程listBox1.Items.Add("方案執行一次成功!");listBox1.TopIndex = listBox1.Items.Count - 1;//獲取結果,分為渲染結果和數據結果;//渲染結果顯示在界面上,//數據結果獲取后用戶可進行輸出或其它處理,本示例將數據結果顯示在消息區;//將其與先前VM中配置好輸出的流程1進行綁定VmProcedure vmProcess1 = (VmProcedure)VmSolution.Instance["流程1"];//然后將渲染控件的顯示源ModuleSource綁定流程1對象vmRenderControl1.ModuleSource = vmProcess1;//通過此代碼即可獲取到格式化中訂閱的字符識別結果strValuestring ocrResult = vmProcess1.ModuResult.GetOutputString("out1").astStringVal[0].strValue;string ocrNum = vmProcess1.ModuResult.GetOutputInt("out0").pIntVal[0].ToString();listBox1.Items.Add("OCR識別結果:" + ocrResult);listBox1.TopIndex = listBox1.Items.Count - 1;listBox1.Items.Add("字符個數:" + ocrNum);listBox1.TopIndex = listBox1.Items.Count - 1;}
如果出現下面撥錯,是因為目前還未添加模塊的引用
右鍵引用–>添加引用–>搜索ocr—>選擇IMVSOcrModuCs這個庫添加
3 運行測試
-
OCR識別–VM方案介紹:
-
案例目的是為了展示傳統OCR識別工具對字符的識別過程:
-
1,用特征匹配和位置修正對字符定位;
-
2,字符識別模塊ROI框出需要識別的字符,然后提取字符并訓練。
-
注:OCR具有兩個識別結果,用戶可根據兩個結果進行其它操作。
-
- 程序運行加載方案后,
直接在流程區中雙擊VM模塊即可在彈窗中進行參數配置;
代碼中的對象綁定的是流程1中的字符識別1模塊,
方案執行后,便可以在參數配置區看到這個字符識別模塊的參數配置;
帶渲染的參數配置控件相比于普通參數配置控件多出一個圖像渲染顯示區域;
- 點擊方案執行驗證效果,
區域中顯示出了字符識別模塊的參數配置界面;
在運行參數中更改算法參數,可以在渲染界面實時查看效果;
4 不帶渲染的參數配置控件 對比
4.1 添加控件
接下來演示另一個參數配置控件,
首先調整下界面布局,將控件的Dock屬性設置為None,然后調整控件的位置和大小;
將不帶渲染的參數配置控件VmParamsConfigControl
拖拉到參數配置區中 ;
參數配置區
上方是,不帶渲染的參數配置控件
下方是, 帶渲染的參數配置控件(渲染就是顯示處理的圖像)
4.2 代碼及演示效果
在方案執行按鈕中添加一行代碼
vmParamsConfigControl1.ModuleSource = ocrTool;//不帶渲染的參數配置控件
private void button3_Click(object sender, EventArgs e)
{//模塊參數配置//第一行代碼為實例化一個模塊;//需要通過字符識別類來定義并實例化一個字符識別模塊對象;IMVSOcrModuCs.IMVSOcrModuTool ocrTool = (IMVSOcrModuCs.IMVSOcrModuTool)VmSolution.Instance["流程1.字符識別1"];vmParamsConfigWithRenderControl1.ModuleSource = ocrTool;// 帶渲染的參數配置控件(渲染就是顯示處理的圖像)vmParamsConfigControl1.ModuleSource = ocrTool;//不帶渲染的參數配置控件VmSolution.Instance.SyncRun();//此函數,會同步執行一次方案中的所有流程listBox1.Items.Add("方案執行一次成功!");listBox1.TopIndex = listBox1.Items.Count - 1;//獲取結果,分為渲染結果和數據結果;//渲染結果顯示在界面上,//數據結果獲取后用戶可進行輸出或其它處理,本示例將數據結果顯示在消息區;//將其與先前VM中配置好輸出的流程1進行綁定VmProcedure vmProcess1 = (VmProcedure)VmSolution.Instance["流程1"];//然后將渲染控件的顯示源ModuleSource綁定流程1對象vmRenderControl1.ModuleSource = vmProcess1;//通過此代碼即可獲取到格式化中訂閱的字符識別結果strValuestring ocrResult = vmProcess1.ModuResult.GetOutputString("out1").astStringVal[0].strValue;string ocrNum = vmProcess1.ModuResult.GetOutputInt("out0").pIntVal[0].ToString();listBox1.Items.Add("OCR識別結果:" + ocrResult);listBox1.TopIndex = listBox1.Items.Count - 1;listBox1.Items.Add("字符個數:" + ocrNum);listBox1.TopIndex = listBox1.Items.Count - 1;}
參數配置區
上方是,不帶渲染的參數配置控件
下方是, 帶渲染的參數配置控件(渲染就是顯示處理的圖像)