• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      掛面精計(jì)量過(guò)程中掛面根數(shù)計(jì)數(shù)研究

      2022-06-30 11:52:20李昆祥王志山付俊輝徐雪萌孫智聰賈世豪
      糧食加工 2022年3期
      關(guān)鍵詞:掛面像素點(diǎn)算子

      李昆祥,王志山,付俊輝,徐雪萌,孫智聰,賈世豪

      (1.河南工業(yè)大學(xué)機(jī)電工程學(xué)院,鄭州 450001;2.登封市啟明軒程控設(shè)備有限公司,河南 登封 452470)

      掛面計(jì)量是掛面包裝中的一道重要工序,計(jì)量的速度往往影響著整個(gè)包裝過(guò)程的速度。據(jù)調(diào)研,目前市面上掛面的計(jì)量方式主要采用稱重式計(jì)量,稱重式計(jì)量又分為人工稱量和機(jī)器自動(dòng)稱量。人工稱量,工人拿取掛面放到計(jì)量秤上,根據(jù)目標(biāo)重量值進(jìn)行增減操作。機(jī)器自動(dòng)稱量的方法主要是二次給料方式,即粗加料和細(xì)加料。一般粗加料加到目標(biāo)重量的80%~90%,不足的部分由細(xì)加料補(bǔ)充,直至達(dá)到目標(biāo)重量值。

      在稱重計(jì)量過(guò)程中,掛面對(duì)秤體的沖擊,會(huì)對(duì)計(jì)量的速度和精度造成影響。譚鵬飛[1]指出下料沖擊、秤體的震動(dòng)以及存留于空中的物料等因素會(huì)帶來(lái)稱重誤差,采用高精度的稱重模塊可使以上誤差得以克服。付君等[2]指出稱量法的計(jì)量精度受到“落差”影響,由物料落料口與稱量裝置之間高度差所引起的計(jì)量誤差稱為“落差”,設(shè)計(jì)了伸縮板大大減少了“落差”引起的誤差。蘇俊明等[3]通過(guò)分析兩級(jí)給料切換點(diǎn)對(duì)包裝機(jī)包裝精度和速度的影響,提出了兩級(jí)給料切換點(diǎn)最優(yōu)取值的計(jì)算方法。稱重式計(jì)量由于稱重傳感器的滯后特性,在計(jì)量速度和精度上存在制約關(guān)系,精加料速度快時(shí),由于空中物料增多,計(jì)量誤差會(huì)變大,計(jì)量精度限制著計(jì)量速度。

      根據(jù)國(guó)家質(zhì)量監(jiān)督檢驗(yàn)檢疫總局 《定量包裝商品計(jì)量監(jiān)督管理辦法》[4],對(duì)于2.5 kg規(guī)格的掛面定量包裝,允許短缺量為1.5%,即37.5 g。但是根據(jù)行業(yè)規(guī)定,計(jì)量誤差默認(rèn)為±5 g。單根掛面質(zhì)量約為0.6 g,也就是說(shuō),對(duì)這種掛面計(jì)數(shù)計(jì)量誤差在8根以內(nèi)即符合規(guī)定,應(yīng)用基于圖像處理的掛面根數(shù)計(jì)數(shù)技術(shù)則可以使得計(jì)量誤差符合規(guī)定。計(jì)數(shù)計(jì)量的方法不必考慮稱重傳感器的滯后特性,使得計(jì)量速度擺脫計(jì)量精度的限制。計(jì)數(shù)計(jì)量為掛面的計(jì)量提供了一種新思路和創(chuàng)新方法。對(duì)掛面包裝發(fā)展而言,掛面包裝設(shè)備需要與一些新興技術(shù)結(jié)合并創(chuàng)新,從而推動(dòng)掛面包裝設(shè)備行業(yè)整體創(chuàng)新升級(jí)。本文即研究基于圖像處理掛面計(jì)數(shù),為高速計(jì)量提供技術(shù)基礎(chǔ)。

      1 計(jì)數(shù)系統(tǒng)設(shè)計(jì)

      整個(gè)計(jì)量過(guò)程分為粗計(jì)量和精計(jì)量,首先進(jìn)行粗計(jì)量使其逼近目標(biāo)重量值,然后進(jìn)行精計(jì)量,根據(jù)“缺多少補(bǔ)多少”的原則,把缺少的重量換算成掛面根數(shù),以根數(shù)為單位進(jìn)行精確計(jì)量。

      掛面計(jì)數(shù)系統(tǒng)主要由計(jì)算機(jī)、工業(yè)相機(jī)、存料槽和可調(diào)支架等組成。其中軟件系統(tǒng)以Python語(yǔ)言編寫,以Pycharm為開(kāi)發(fā)環(huán)境,軟件版本為PyCharm Community Edition 2020。OpenCV是以Python開(kāi)發(fā)的開(kāi)源計(jì)算機(jī)視覺(jué)庫(kù),在圖像處理和計(jì)算機(jī)視覺(jué)方面廣泛應(yīng)用,在計(jì)算機(jī)視覺(jué)的物體計(jì)數(shù)領(lǐng)域應(yīng)用也十分廣泛。本文借助OpenCV開(kāi)源庫(kù)實(shí)現(xiàn)基于距離變換的自動(dòng)計(jì)數(shù)系統(tǒng)。系統(tǒng)構(gòu)成如圖1所示。

      圖1 掛面計(jì)數(shù)系統(tǒng)

      本文采用的方法為:對(duì)采集到的圖像進(jìn)行預(yù)處理,使用OTSU算法[5]進(jìn)行二值化處理,運(yùn)用全局閾值完成圖像分割;對(duì)圖像運(yùn)用開(kāi)運(yùn)算進(jìn)行濾波處理以去除圖像中孤立的小點(diǎn)和毛刺;通過(guò)距離變換解決粘連問(wèn)題;邊緣檢測(cè)求取連通域;當(dāng)仍然存在一部分粘連時(shí),提取連通域周長(zhǎng)信息,即連通域周長(zhǎng)除以單個(gè)標(biāo)準(zhǔn)周長(zhǎng)得到粘連部分掛面數(shù)量,最后基于連通域方法進(jìn)行計(jì)數(shù)。

      2 掛面計(jì)數(shù)過(guò)程與方法

      2.1 圖像預(yù)處理

      圖像預(yù)處理的目的是為了消除圖像中無(wú)關(guān)的信息,減少干擾,恢復(fù)真實(shí)的目標(biāo)信息,方便后續(xù)的圖像處理[6]。常用的預(yù)處理方法有:灰度化、二值化、形態(tài)學(xué)操作等。

      2.1.1 圖像灰度化

      灰度化處理主要是為了減少對(duì)圖像處理過(guò)程中的運(yùn)算量,這樣能極大地提高運(yùn)算的效率,提升整體的運(yùn)行速度。因?yàn)椴杉降膱D像為彩色RGB圖像,所以需要進(jìn)行灰度化處理。

      圖像灰度化的原理就是在RGB模型中,由于三個(gè)通道的值不相等,需要用統(tǒng)一的灰度值表征該點(diǎn)的亮度,灰度值的范圍是0到255,一共有256級(jí)灰度值[7]。圖像灰度化的方法主要有平均值法、加權(quán)平均法和最大值法,由于平均值法和最大值法在灰度化時(shí)的效果較加權(quán)平均法效果較差,所以本文采用加權(quán)平均法。

      加權(quán)平均法RGB灰度化的公式為:

      OpenCV提供了灰度化函數(shù)cv2.cvtColor(input_img,flat),其中的兩個(gè)參數(shù)input_img和flat分別表示要處理的灰度圖像和轉(zhuǎn)換類型。對(duì)于RGB→灰度轉(zhuǎn)換,本文使用轉(zhuǎn)換類型cv2.COLOR_BGR2GRAY實(shí)現(xiàn)。圖2和圖3分別為灰度化處理前后的對(duì)比圖:

      圖2 原始圖像

      圖3 灰度圖像

      2.1.2 圖像二值化

      圖像的二值化處理就是把圖像上每一像素點(diǎn)的灰度值變?yōu)?或255,使得整幅圖像表現(xiàn)出明顯的黑白效果,其中0表示黑色,255表示白色[8]。即將具有256個(gè)亮度等級(jí)的灰度圖像通過(guò)適當(dāng)?shù)拈撝颠x取而獲得仍然可以反映圖像整體和局部特征的二值化圖像[9]。這樣有利于在對(duì)圖像做進(jìn)一步處理時(shí),圖像的性質(zhì)只與像素值為0或255的點(diǎn)的位置有關(guān),不再涉及像素的多級(jí)值,使處理變得簡(jiǎn)單。一個(gè)像素點(diǎn)在灰度化之后的灰度值怎么轉(zhuǎn)化為0或者255,這涉及到閾值選取的問(wèn)題。

      閾值選取一般分為全局閾值和局部閾值,全局閾值指的是整幅圖像使用單一的閾值。全局閾值處理的實(shí)現(xiàn)方式比較簡(jiǎn)單,只需對(duì)圖像像素逐個(gè)進(jìn)行掃描,按其灰度值大于或小于設(shè)定的閾值,把像素相應(yīng)地標(biāo)記為目標(biāo)或背景即可實(shí)現(xiàn)圖像分割,即灰度值大于閾值的像素設(shè)為255,小于或等于閾值的像素設(shè)為0??梢杂孟率奖硎荆?/p>

      其中,I(x,y)表示第x行、第y列像素的灰度值;0(x,y)表示全局閾值處理后的圖像,thresh表示選取的閾值。全局閾值是最簡(jiǎn)單的閾值處理技術(shù),適用于目標(biāo)和背景的灰度值相差較大、直方圖有明顯谷底的情況。

      局部閾值又稱自適應(yīng)閾值,不再像全局閾值一樣,整個(gè)圖像只有一個(gè)閾值,而是針對(duì)輸入圖像每一個(gè)位置的灰度值都設(shè)有相應(yīng)的閾值。OTSU算法[10],又被稱為最大類間方差法,是一種自適應(yīng)的閾值選取的方法。它是按圖像的灰度特性,將圖像分成背景和目標(biāo)兩部分。背景和目標(biāo)之間的類間方差越大,說(shuō)明構(gòu)成圖像的兩部分的差別越大,當(dāng)部分目標(biāo)錯(cuò)分為背景或部分背景錯(cuò)分為目標(biāo)都會(huì)導(dǎo)致兩部分差別變小。因此,使類間方差最大的分割意味著錯(cuò)分概率最小。OTSU算法原理:將一幅圖像中的所有像素分為兩類,即C1和C2,這兩類像素的均值分別為M1和M2,整個(gè)圖像的均值為M,整個(gè)圖像中的每個(gè)像素被分為C1和C2的概率分別為P1和P2。圖像的灰度級(jí)范圍為[0,L-1],所以有:

      由方差的定義,得類間方差表達(dá)式:

      由此可得:

      求出使得上式最大化的灰度級(jí)k就可以得到OTSU閾值,其中:

      算法實(shí)現(xiàn):OpenCV中提供了二值化函數(shù)cv2.threshold(src,thresh,maxval,type)

      其中的4個(gè)參數(shù)src,thresh,maxval,type分別指的是源圖像、閾值、像素值的最大值、閾值的類型。因?yàn)楸疚拈撝堤幚硎褂肙TSU方法,所以參數(shù)類型type使用cv2.THRESH_OTSU。經(jīng)過(guò)OTSU方法二值化處理后的圖像如圖4所示:

      圖4 OTSU二值化圖像

      2.1.3 形態(tài)學(xué)操作開(kāi)運(yùn)算

      形態(tài)學(xué)操作是基于形態(tài)學(xué)對(duì)圖像處理的算法,即結(jié)構(gòu)元在每個(gè)像素位置上與原二值化圖像對(duì)應(yīng)的區(qū)域進(jìn)行特定的邏輯運(yùn)算錯(cuò)誤,未找到引用源。最常見(jiàn)的形態(tài)學(xué)操作有腐蝕和膨脹,把這兩種操作進(jìn)行組合還可以進(jìn)行開(kāi)運(yùn)算和閉運(yùn)算的操作[11]。

      腐蝕原理:遍歷原二值圖像的每一個(gè)像素,如果結(jié)構(gòu)元完全處于前景圖像中,就將結(jié)構(gòu)元中心點(diǎn)所對(duì)應(yīng)的像素點(diǎn)處理成前景;如果結(jié)構(gòu)元未完全處于前景中,就將結(jié)構(gòu)元中心點(diǎn)對(duì)應(yīng)的像素點(diǎn)處理成背景。用公式表達(dá)為:

      b為所有屬于結(jié)構(gòu)元B的元素,(B)z表示結(jié)構(gòu)元B平移z之后的集合。

      那么結(jié)構(gòu)元B對(duì)二值圖像A腐蝕表示為:

      膨脹原理:遍歷原二值圖像的每一個(gè)像素,如果結(jié)構(gòu)元中任意一點(diǎn)處于前景圖像中,就將對(duì)應(yīng)的像素點(diǎn)處理成前景;如果結(jié)構(gòu)元完全處于背景外,就將對(duì)應(yīng)的像素點(diǎn)處理成背景。用公式表達(dá)為:

      那么結(jié)構(gòu)元B對(duì)二值圖像A的膨脹表示為:

      開(kāi)運(yùn)算的具體實(shí)現(xiàn):先進(jìn)行腐蝕操作,再進(jìn)行膨脹操作,就可以實(shí)現(xiàn)。在移除小的對(duì)象時(shí)候很有用,被用來(lái)去除噪聲。

      算法實(shí)現(xiàn):OpenCV中提供了開(kāi)運(yùn)算操作的函數(shù)cv2.morphologyEx(src,cv2.MORPH_OPEN,kernel,dst,iterations)可以實(shí)現(xiàn)開(kāi)運(yùn)算操作。經(jīng)開(kāi)運(yùn)算之后的圖像如圖5所示:

      圖5 開(kāi)運(yùn)算操作

      2.2 距離變換

      距離變換的基本思想是計(jì)算一個(gè)圖像中非零像素點(diǎn)到最近零點(diǎn)像素點(diǎn)間的距離,也就是到所有零像素點(diǎn)的最短距離[12]。建立距離變換圖像可以方便提取目標(biāo)元素。距離變換的輸入圖像是二值圖像,變換后的結(jié)果是灰度圖像。距離變換的結(jié)果圖像的某一點(diǎn)灰度值表示該像素點(diǎn)與其最近的零點(diǎn)之間的距離。距離背景邊緣越遠(yuǎn)像素點(diǎn)的灰度值越大。距離方法有歐式距離、棋盤距離、城市街區(qū)距離等,歐式距離變換是二維空間中兩點(diǎn)之間最短的距離,由于歐式距離的計(jì)算精度高[13],所以選用歐式距離變換。

      2.2.1 距離變換的算法原理

      距離變換是針對(duì)二值圖像進(jìn)行處理,處理完之后的結(jié)果是一副灰度圖像,核心就是求圖像中非零像素點(diǎn)到最近零像素點(diǎn)間的距離。整個(gè)圖像上像素點(diǎn)u=(i,j),像素點(diǎn)v=(k,l),歐式距離De表示為:

      距離變換是針對(duì)二值圖像的一種變換,計(jì)算整幅圖像中非零像素點(diǎn)到最近零像素點(diǎn)的距離。具體的算法原理是:

      (1)計(jì)算一幅圖像上所有的內(nèi)部點(diǎn)和非內(nèi)部點(diǎn)即邊緣點(diǎn)和孤立點(diǎn),點(diǎn)集分別為Q1和Q2。

      (2)內(nèi)部點(diǎn) Q1中的點(diǎn)(x,y),使用上式計(jì)算出該點(diǎn)到Q2中的最小距離,計(jì)算出所有的最小距離,這些最小距離構(gòu)成集合Q3。

      (3)計(jì)算出集合Q3中最大值max和最小值min。

      (4)整個(gè)圖像的每個(gè)內(nèi)部點(diǎn),轉(zhuǎn)換后的灰度值G(x,y)可以用下式表示:

      2.2.2 距離變換結(jié)果

      距離變換的算法實(shí)現(xiàn):OpenCV中提供了變換函數(shù)cv2.distanceTransform(src,distanceType,mask-Size),參數(shù)src,distanceType,maskSize分別表示源圖像,距離變換類型,距離變換的掩膜模板。本文使用歐式距離變換,所以參數(shù)distanceType選擇為cv2.DIST_L2;參數(shù)maskSize選擇為7,即7×7掩膜模板;距離變換的結(jié)果如圖6所示:

      圖6 距離變換結(jié)果

      經(jīng)過(guò)距離變換之后提取出大致的前景區(qū)域,然后通過(guò)閾值處理剝離出前景區(qū)域;距離變換之后可以解決粘連的問(wèn)題,使得求取連通區(qū)域變得簡(jiǎn)單,在距離變換后通過(guò)閾值處理可以得到距離變換二值圖像,如圖7、圖8示。最后進(jìn)行腐蝕處理如圖9所示。

      圖7 閾值處理

      圖8 二值圖像

      圖9 腐蝕處理

      2.3 邊緣檢測(cè)

      求取連通區(qū)域之前先進(jìn)行邊緣檢測(cè),通過(guò)計(jì)算圖像中像素的差值獲取變化率,求導(dǎo)運(yùn)算,變化率大的地方就是邊緣點(diǎn)。求邊緣點(diǎn)的梯度算子有Sobel算子、Robert算子、Prewitt算子、LoG算子及Canny算子等。

      Sobel算子是一種常用的邊緣檢測(cè)算子[14],相比其它算子具有計(jì)算簡(jiǎn)單、運(yùn)算速度快的優(yōu)點(diǎn)。計(jì)算出水平方向?qū)?shù)的近似值,將Sobel算子與原始圖像進(jìn)行卷積運(yùn)算,計(jì)算水平方向像素值的變化情況。具有很好的邊緣檢測(cè)性能。卷積運(yùn)算實(shí)際就是對(duì)指定區(qū)域的像素灰度值進(jìn)行加權(quán)求和的計(jì)算過(guò)程[15]。

      Sobel算子屬于一階導(dǎo)數(shù)的邊緣檢測(cè)算子[16],在算法原理上,通過(guò)3×3模板作為該圖像中的每一個(gè)像素點(diǎn)進(jìn)行卷積運(yùn)算,最后選取閾值提取出邊緣。Sobel算子算法原理:

      (1)計(jì)算原始圖像與 Sobel算子 x方向的卷積Gx,

      (2)計(jì)算原始圖像與 Sobel算子 y方向的卷積Gy,

      (3)利用圖像上每個(gè)像素點(diǎn)的橫向及縱向梯度值,通過(guò)下式可以計(jì)算出該點(diǎn)梯度值G,

      另外,為了減少運(yùn)算時(shí)間,提高運(yùn)算效率,使用不開(kāi)平方的式子代替,即

      經(jīng)Sobel算子邊緣檢測(cè)處理的圖像如圖10示。

      圖10 Sober算子邊緣檢測(cè)

      2.4 連通域標(biāo)記

      經(jīng)過(guò)距離變換之后解決了粘連問(wèn)題,當(dāng)前景圖像沒(méi)有發(fā)生粘連時(shí),計(jì)數(shù)結(jié)果比較準(zhǔn)確;當(dāng)仍然存在粘連問(wèn)題時(shí),計(jì)數(shù)結(jié)果往往不準(zhǔn)確,所以可以基于連通域周長(zhǎng)達(dá)到計(jì)數(shù)目的。對(duì)于粘連掛面的連通域,提取其周長(zhǎng)特征,這種方式不是基于連通域的個(gè)數(shù)實(shí)現(xiàn)計(jì)數(shù),所以可以克服由粘連現(xiàn)象引起的誤差[17]。

      統(tǒng)計(jì)出連通域的個(gè)數(shù),可以用A表示;由連通域可以計(jì)算出每個(gè)連通域的周長(zhǎng),并用B來(lái)表示其周長(zhǎng)。經(jīng)過(guò)二值化后的圖像會(huì)受到噪聲干擾,產(chǎn)生較小的連通域,為了消除噪聲干擾,添加參數(shù)連通域周長(zhǎng)閾值TB,當(dāng)連通域周長(zhǎng)小于TB的視為噪聲,大于TB的連通域則視為目標(biāo)區(qū)域。圖像中一些較大的連通區(qū)域則是由2根及以上數(shù)目組成的,單根掛面連通域的周長(zhǎng)記為As,以較大粘連連通域周長(zhǎng)除以單個(gè)標(biāo)準(zhǔn)掛面周長(zhǎng)即可得到該連通域?qū)?yīng)掛面的根數(shù)。

      由上面的分類可以得到連通域周長(zhǎng)與此連通域所包含的掛面根數(shù)之間的關(guān)系,設(shè)連通域周長(zhǎng)為Ak,則此連通域所包含的掛面根數(shù)為Nk,k表示各連通域的標(biāo)記;Ak與Nk之間的關(guān)系如下所示:

      經(jīng)過(guò)連通域標(biāo)記處理后得到如圖11所示的結(jié)果,圖片中實(shí)際掛面數(shù)量為40根,圖像處理結(jié)果顯示為39根,計(jì)數(shù)準(zhǔn)確率達(dá)到了97.5%,符合掛面計(jì)量的誤差要求。

      圖11 連通域標(biāo)記

      3 結(jié)語(yǔ)

      本文基于圖像處理對(duì)掛面根數(shù)計(jì)數(shù)做了相關(guān)研究分析,對(duì)粘連嚴(yán)重的掛面采用了先分割再計(jì)數(shù)的方法,通過(guò)距離變換提取出掛面端面的骨架信息,使得圖像中掛面端面“細(xì)化”,從而解決掛面粘連的問(wèn)題;通過(guò)計(jì)算連通域周長(zhǎng)信息從而得到掛面根數(shù),連通域周長(zhǎng)與標(biāo)準(zhǔn)單根掛面周長(zhǎng)的比值即為根數(shù),有效解決了嚴(yán)重粘連時(shí)計(jì)數(shù)困難的問(wèn)題,結(jié)果顯示,計(jì)數(shù)準(zhǔn)確率達(dá)到了97.5%,為后續(xù)的掛面高速計(jì)量奠定了技術(shù)基礎(chǔ)。

      猜你喜歡
      掛面像素點(diǎn)算子
      中江掛面:銀絲飄香九百年
      巴蜀史志(2021年2期)2021-09-10 13:17:04
      擬微分算子在Hp(ω)上的有界性
      各向異性次Laplace算子和擬p-次Laplace算子的Picone恒等式及其應(yīng)用
      一把掛面——脫貧攻堅(jiān)鄉(xiāng)村行走4
      一類Markov模算子半群與相應(yīng)的算子值Dirichlet型刻畫
      “媽媽牌”掛面
      基于canvas的前端數(shù)據(jù)加密
      “媽媽牌”掛面
      基于逐像素點(diǎn)深度卷積網(wǎng)絡(luò)分割模型的上皮和間質(zhì)組織分割
      Roper-Suffridge延拓算子與Loewner鏈
      平凉市| 望江县| 阿拉尔市| 进贤县| 灵丘县| 林甸县| 綦江县| 怀柔区| 杭锦旗| 乾安县| 济南市| 开封市| 锦州市| 石狮市| 江山市| 南汇区| 新民市| 吕梁市| 太谷县| 平乡县| 山阴县| 乌鲁木齐县| 密山市| 宕昌县| 彝良县| 洪雅县| 当阳市| 项城市| 依安县| 东光县| 西贡区| 梧州市| 闸北区| 五家渠市| 厦门市| 山东| 象州县| 光泽县| 屯门区| 巴林左旗| 腾冲县|