亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于機器視覺的高速在線藥粒計數(shù)系統(tǒng)程序的設(shè)計

        2023-10-16 08:40:08孫凱明
        黑龍江科學(xué) 2023年18期
        關(guān)鍵詞:字型控件計數(shù)

        孫凱明,郝 明,王 剛

        (黑龍江省科學(xué)院智能制造研究所,哈爾濱 150090)

        0 引言

        中藥丸的分揀包裝主要采用常工計數(shù)法[1]、機械計數(shù)法[2]、光電數(shù)粒機[3]等,這些方法計數(shù)速度慢,設(shè)備占地面積大,只能針對特定規(guī)格的中藥丸進(jìn)行計數(shù)分裝。隨著視覺檢測技術(shù)的發(fā)展,視覺數(shù)粒技術(shù)在藥片包裝中的應(yīng)用得到廣泛研究。姚瑩[4]等研制了一種平板式數(shù)粒機,通過機器視覺系統(tǒng)及藥粒位置分析實現(xiàn)藥粒的快速準(zhǔn)確計數(shù)。DATA公司研制了ICU系列—基于機器視覺的高速藥粒數(shù)粒裝瓶機,其結(jié)構(gòu)緊湊,計數(shù)準(zhǔn)確。但機器視覺計數(shù)容易受到外界條件的干擾,在我國藥廠難以普及,故研究基于機器視覺且計數(shù)精準(zhǔn)的高速藥粒計數(shù)系統(tǒng)具有廣闊的市場前景。針對基于機器視覺的高速在線藥粒計數(shù)系統(tǒng)方案,結(jié)合Dalsa線陣相機SDK、Opencv 4.55及Visual Studio 2019,設(shè)計了基于機器視覺的高速在線藥粒計數(shù)系統(tǒng)程序。

        1 硬件設(shè)計

        基于機器視覺的高速在線藥粒計數(shù)系統(tǒng)由線陣相機、振動盤、光源及PLC控制器組成(如圖1所示)。藥粒高速下落時可能發(fā)生碰撞等情況,軌跡變得不規(guī)則,通過線陣相機成像后,顆粒間的位置關(guān)系不再發(fā)生改變,可利用藥粒間的位置關(guān)系信息去除重復(fù)計數(shù)的藥粒,實現(xiàn)精準(zhǔn)計數(shù)。本系統(tǒng)選擇DALSA的LA-GM-04K08A-00-R型號線陣相機,為減小運動模糊,攝像機的曝光時間很短,需要使用高強度的光源才能產(chǎn)生足夠的光通量,故采用面光源背向照明的方式,以突出其輪廓特征。

        圖1 基于機器視覺的高速在線藥粒計數(shù)系統(tǒng)Fig.1 High-speed on-line drug counting system based on machine vision

        2 程序設(shè)計

        2.1 線陣相機圖像采集及處理程序設(shè)計

        圖像采集事件處理類用于顯示采集的圖像,在顯示圖像的過程中需要將原始數(shù)據(jù)的BayerRG8圖像轉(zhuǎn)化為cv::Mat類型,以便通過OpenCV顯示。

        class CSampleCaptureEventHandler :public ICaptureEventHandler

        {

        {

        cv::Mat img(objImageDataPointer->GetHeight(),

        objImageDataPointer->GetWidth(), CV_8UC3);

        img.create(objImageDataPointer->GetHeight(),

        objImageDataPointer->GetWidth(), CV_8UC3);

        //假設(shè)原始數(shù)據(jù)是BayerRG8圖像

        void* pRGB24Buffer = objImageDataPointer->ConvertToRGB24(GX_BIT_0_7,GX_RAW2RGB_NEIGHBOUR, true);

        memcpy(img.data, pRGB24Buffer, (objImageDataPointer->GetHeight()) * (objImageDataPointer->GetWidth()) * 3);

        //顯示圖像

        cv::imshow(“Imager1”, img);

        cv::waitKey(1);

        }

        };

        線陣相機初始化包括SDK初始化、采集設(shè)備設(shè)置、數(shù)據(jù)緩存申請及傳輸?shù)攘鞒獭?/p>

        IGXFactory::GetInstance().Init();//SDK初始化

        m_pSampleCaptureEventHandle = new CSampleCaptureEventHandler();

        //采集設(shè)備設(shè)置

        m_AcqDevice = new SapAcqDevice(SapLocation(CStringA(“Linea_M4096-7um_1”), 0), NULL);

        m_AcqDevice->SetConfigFile(“D:\Program Files (x86)\CamFiles\User\T_Linea_M4096-7um_Default_Default.ccf”);

        //緩存申請

        m_Buffers = new SapBufferWithTrash(MAX_BUFFER, m_AcqDevice);

        //數(shù)據(jù)傳輸及回調(diào)函數(shù)

        m_Xfer = new SapAcqDeviceToBuf(m_AcqDevice, m_Buffers, XferCallback, this);

        m_Xfer->GetPair(0)->SetFramesPerCallback(m_nFramesPerCallback);

        nFramesPerCallback = m_Xfer->GetPair(0)->GetFramesPerCallback();

        開始采集時調(diào)用m_Xfer->Grab(),結(jié)束采集時調(diào)用m_Xfer->Freeze()。

        2.2 基于MFC的OpenCV圖像窗口顯示程序設(shè)計

        在基于MFC對話框的程序中將OpenCV的顯示窗口附著在MFC的CPictureCtrl控件上,聲明OpenCV窗口Imager1,根據(jù)CPictureCtrl控件大小調(diào)整OpenCV窗口Imager1的大小,并將其句柄附著在CPictureCtrl控件上。

        cv::namedWindow(“Imager1”, cv::WINDOW_NORMAL);

        CRect rect;

        GetDlgItem(IDC_PIC)->GetWindowRect(rect);

        cv::resizeWindow(“Imager1”, rect.Width(), rect.Height());

        HWND hWnd = (HWND)cvGetWindowHandle(“Imager1”);

        m_hOpenCVWnd = hWnd;

        HWND hParent = ::GetParent(hWnd);

        ::SetParent(hWnd, GetDlgItem(IDC_PIC)->m_hWnd);

        ::ShowWindow(hParent, SW_HIDE)。

        2.3 藥粒計數(shù)處理程序設(shè)計

        設(shè)計的藥粒計數(shù)程序流程如圖2所示,在圖像預(yù)處理的基礎(chǔ)上采用輪廓提取,根據(jù)輪廓面積進(jìn)行篩選,濾除噪聲干擾。判斷其是否是“8”字型粘連[5-6],如果是則采用距離變換的方法進(jìn)一步識別,若確認(rèn)是“8”字型粘連則計數(shù)加1。在前后兩幀圖像中,處于圖像邊緣的藥粒圖像可能因顯示不全而造成重復(fù)計數(shù),利用線陣相機成像后相對位置不發(fā)生改變的特點,對橫坐標(biāo)相等且在前后兩幀的上下邊緣處,根據(jù)公式剔除。

        圖2 “8”字型粘連分割Fig.2 “8” type adhesive segmentation

        圖3 相鄰兩幀圖像中藥粒重復(fù)計數(shù)剔除Fig.3 Repeated counting of eliminated Chinese medicine granules in adjacent frames

        圖4 藥粒計數(shù)處理程序流程Fig.4 Flow of drug counting processing program

        其中,Cs1與Cs2表示區(qū)域S1和S2的圓度,Cs1+s2表示區(qū)域S1與S2拼接后形成的區(qū)域的圓度,xs1與xs2表示區(qū)域S1與S2的中心水平位置,T1、T2及T3為閾值。區(qū)域的圓度與中心可以通過邊緣提取及外接矩形獲得。

        3 實驗系統(tǒng)及運行結(jié)果

        實物系統(tǒng)如圖5所示,配置如表1所示。

        表1 基于機器視覺的高速藥粒分裝裝置實驗設(shè)置Tab.1 Experimental setting of high speed drug dispensing device based on machine vision

        圖5 實驗系統(tǒng)實物Fig.5 Experimental system object

        系統(tǒng)界面及運行結(jié)果如圖6所示,程序中設(shè)置了計數(shù)目標(biāo),模擬裝瓶過程。圖中紅色矩形為識別出的“8”字型粘連,綠色與藍(lán)色矩形為前后兩幀重復(fù)計數(shù)剔除。

        圖6 基于機器視覺的高速在線藥粒計數(shù)系統(tǒng)程序界面及計數(shù)結(jié)果Fig.6 Program interface and counting result of high speed on-line drug count system based on machine vision

        從表2可以看出,系統(tǒng)計數(shù)精度達(dá)100%,可實現(xiàn)精準(zhǔn)計數(shù)。

        表2 計數(shù)實驗結(jié)果Tab.2 Results of counting experiment

        4 結(jié)論

        為實現(xiàn)中藥藥粒的高速計數(shù),結(jié)合Dalsa線陣相機SDK、Opencv 4.55及Visual Studio 2019,設(shè)計了基于機器視覺的高速在線藥粒計數(shù)系統(tǒng)程序。從計數(shù)實驗結(jié)果來看,此系統(tǒng)計數(shù)精度達(dá)100%,可滿足藥廠對藥粒分裝的精度要求,具有十分廣闊的市場前景。

        猜你喜歡
        字型控件計數(shù)
        看“字型”找相似
        古人計數(shù)
        遞歸計數(shù)的六種方式
        古代的計數(shù)方法
        關(guān)于.net控件數(shù)組的探討
        軟件(2018年7期)2018-08-13 09:44:42
        這樣“計數(shù)”不惱人
        設(shè)施克瑞森無核葡萄“廠”字型架式栽培關(guān)鍵技術(shù)
        冬小麥“井”字型播種模式的研究探討
        “一字型”折疊翼展開試驗與仿真驗證分析
        就這樣玩會VBA中常見的自定義控件
        電腦迷(2012年24期)2012-04-29 00:44:03
        国产高潮视频在线观看| 亚洲女同高清精品一区二区99| 日本免费久久高清视频| 国产a√无码专区亚洲av| 亚洲国产综合精品 在线 一区 | 久久久久亚洲av无码专区喷水| 日本三级欧美三级人妇视频| 亚洲性69影视| 日韩精品国产精品亚洲毛片| 天堂中文а√在线| 欧美熟妇精品一区二区三区| 亚洲色拍拍噜噜噜最新网站| 中文字幕亚洲一区二区三区| 欧美丰满熟妇性xxxx| 精品一区二区三区在线观看| 亚洲日韩精品AⅤ片无码富二代| 久久一区二区三区老熟女| 制服丝袜中文字幕在线| 精品免费在线| 极品少妇被后入内射视| 亚洲中文字幕舔尻av网站| 中国人妻被两个老外三p| 日韩国产成人精品视频| 国产一区二区白浆在线观看| 在线观看特色大片免费视频| 国产精品麻豆aⅴ人妻| 久久国产亚洲中文字幕| 亚洲婷婷久悠悠色悠在线播放| 精品久久久无码中字| 亚州无线国产2021| 亚洲中文乱码在线观看| 777精品出轨人妻国产| 人与嘼av免费| 人妻尤物娇呻雪白丰挺| av在线免费观看蜜桃| 一本无码人妻在中文字幕免费| 免费视频成人 国产精品网站| 婷婷久久av综合一区二区三区| 成人性生交大片免费看96| 亚洲亚洲网站三级片在线| 白色白色白色在线观看视频|