時間:2021-07-16 14:21:27來源:深圳市正運動技術(shù)有限公司
上期課程我們和大家分享了QT調(diào)用ZBasic語言的方法,即調(diào)用ZBasic語言封裝的C++動態(tài)鏈接庫,并實現(xiàn)機器視覺圖像采集功能。
本次課程我們將在上期課程的程序基礎(chǔ)上,實現(xiàn)機器視覺數(shù)字識別的檢測功能。
教學(xué)視頻
一檢測原理梯形圖介紹
二軟件實現(xiàn)梯形圖介紹
(一)準備
(二)實例演示
1.打開ZDevelop軟件,打開上次課程使用到的圖像采集項目,添加使用到的全局變量,添加【測試】功能子程序、【連續(xù)運行】子程序、【停止運行】子程序。(此部分的basic指令可在下方的百度云盤鏈接獲取,這里不做展示)
2.打開QTCreator軟件,點擊“Open Project”,在指定路徑下找到上次課程的項目文件“QT_ZVision_1”并打開項目。
3.在“mainwindow.cpp”文件中增加定義程序中使用到的全局變量。
int flag=0;ZMC_HANDLE g_handle;int Times=0;uint8 zv0_pBuff[520*390*2]={0};//鎖存0緩存大小int ContinuousGetImgFlag=0; //連續(xù)采集標志int ContinuousRunFlag=0; //連續(xù)運行標志
4.補充設(shè)計UI界面。
5.添加界面初始化代碼。
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){ ui->setupUi(this); //ui->ZV0->setText(""); //清空字體 //ui->ZV0->setStyleSheet("QLabel{background-color:rgb(0, 0, 100);}"); //設(shè)置樣式表 ui->select_mode->addItem("手動閾值",0); ui->select_mode->addItem("自動閾值",1); ui->ExposureValue->setText("5000"); UpZV_0.start(20);//20ms定時判斷采集并顯示圖像 connect(&UpZV_0, SIGNAL(timeout()), this, SLOT(UpZV_0show()));}
6.添加【測試】槽函數(shù):選擇【測試】按鈕,右擊彈出快捷菜單欄,選擇“轉(zhuǎn)到槽”選項→彈出“轉(zhuǎn)到槽”窗口,選擇對應(yīng)的信號源“clicked()”,點擊“OK”確認,即可完成槽函數(shù)的定義和聲明→在槽函數(shù)的聲明函數(shù)中添加函數(shù)實現(xiàn)的具體代碼內(nèi)容。
//單次執(zhí)行函數(shù)void MainWindow::on_execute_once_clicked(){ int32 iresult; //將QT界面設(shè)置的參數(shù)寫入控制器對應(yīng)變量中 int mode,low_thresh,high_thresh,min_area,max_area; mode=ui->select_mode->currentIndex(); ZAux_Direct_SetVariableInt(g_handle,"d_detect_param(0)",mode); low_thresh=ui->low_thresh_value->value(); ZAux_Direct_SetVariableInt(g_handle,"d_detect_param(1)",low_thresh); high_thresh=ui->hige_thresh_value->value(); ZAux_Direct_SetVariableInt(g_handle,"d_detect_param(2)",high_thresh); min_area=ui->min_area->value(); ZAux_Direct_SetVariableInt(g_handle,"d_detect_param(3)",min_area); max_area=ui->max_area->value(); ZAux_Direct_SetVariableInt(g_handle,"d_detect_param(4)",max_area); iresult=ZAux_RunTask(g_handle,0,"btn_test()");//運行控制器里面指定的SUB if (iresult==0) { qDebug()<<"run btn_test() success"; } else { qDebug()<<"run btn_test() fail !!"<<iresult; p="" 刷新顯示界面圖像}<="">
7.添加【連續(xù)運行】槽函數(shù):選擇【連續(xù)運行】按鈕,右擊彈出快捷菜單欄,選擇“轉(zhuǎn)到槽”選項→彈出“轉(zhuǎn)到槽”窗口,選擇對應(yīng)的信號源“clicked()”,點擊“OK”確認,即可完成槽函數(shù)的定義和聲明→在槽函數(shù)的聲明函數(shù)中添加函數(shù)實現(xiàn)的具體代碼內(nèi)容。
//連續(xù)運行void MainWindow::on_run_clicked(){ int32 iresult; iresult=ZAux_RunTask(g_handle,0,"btn_run()");//運行控制器里面指定的SUB if (iresult==0) { qDebug()<<"run btn_run() success"; }
else { qDebug()<<"run btn_run() fail !!"<
8.添加定時刷新函數(shù):在“mainwindow.h”文件中定義“QTimer Uprun_0”定時器變量→在界面初始化函數(shù)中添加定時器觸發(fā)條件和信號與槽連接函數(shù)→添加定時檢測識別骰子點數(shù)的定義和聲明函數(shù),并在聲明函數(shù)中添加具體的實現(xiàn)代碼內(nèi)容。
private: Ui::MainWindow *ui; QPixmap fPixmap; QTimer UpZV_0; QTimer Uprun_0;
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){ ui->setupUi(this); //ui->ZV0->setText(""); //清空字體 //ui->ZV0->setStyleSheet("QLabel{background-color:rgb(0, 0, 100);}"); //設(shè)置樣式表 ui->select_mode->addItem("手動閾值",0); ui->select_mode->addItem("自動閾值",1); ui->ExposureValue->setText("5000"); UpZV_0.start(20);//20ms定時判斷采集并顯示圖像 connect(&UpZV_0, SIGNAL(timeout()), this, SLOT(UpZV_0show())); Uprun_0.start(200);//200ms定時判斷采集并顯示圖像 connect(&Uprun_0, SIGNAL(timeout()), this, SLOT(Uprun_show()));}
//定時器開啟連續(xù)運行void MainWindow::Uprun_show(){ if(1 == ContinuousRunFlag) { ZV0_Show(); }}
9.添加【停止運行】槽函數(shù):選擇【停止運行】按鈕,右擊彈出快捷菜單欄,選擇“轉(zhuǎn)到槽”選項→彈出“轉(zhuǎn)到槽”窗口,選擇對應(yīng)的信號源“clicked()”,點擊“OK”確認,即可完成槽函數(shù)的定義和聲明→在槽函數(shù)的聲明函數(shù)中添加函數(shù)實現(xiàn)的具體代碼內(nèi)容。
//停止運行void MainWindow::on_stop_clicked(){ int32 iresult;
iresult=ZAux_RunTask(g_handle,0,"btn_stop()");//運行控制器里面指定的SUB if (iresult==0) {
qDebug()<<"run btn_stop() success"; } else { qDebug()<<"run
btn_stop() fail !!"<
10.查看運行效果:將控制器接入電源,使用網(wǎng)線將控制器與PC連接,將相機通電并接入控制器→使用ZDevelop軟件打開ZBasic自動識別骰子點數(shù)的項目文件,將該項目下載到控制器→運行QT程序,并連接到控制器,進行對應(yīng)采集操作。
(三)仿真效果演示
本次,正運動技術(shù)ZBasic結(jié)合Qt實現(xiàn)機器視覺數(shù)字識別,就分享到這里。
本文由正運動技術(shù)原創(chuàng),歡迎大家轉(zhuǎn)載,共同學(xué)習(xí),一起提高中國智能制造水平。文章版權(quán)歸正運動技術(shù)所有,如有轉(zhuǎn)載請注明文章來源。
上一篇:【正運動】機器視覺運動控制...
中國傳動網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:中國傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國傳動網(wǎng)(www.wangxinlc.cn)獨家所有。如需轉(zhuǎn)載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個人轉(zhuǎn)載使用時須注明來源“中國傳動網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請保留稿件來源及作者,禁止擅自篡改,違者自負版權(quán)法律責(zé)任。
產(chǎn)品新聞
更多>2025-04-30
性能躍升20%!維宏NK300CX Plus數(shù)控系統(tǒng)...
2025-04-11
rpi-image-gen:樹莓派軟件鏡像構(gòu)建的終...
2025-04-08
【產(chǎn)品解讀】全面提升精密制造檢測節(jié)拍...
2025-03-31
激光閃耀 智慧引領(lǐng) | WISE MASER 黑武士...
2025-03-20