王紫聰,多功昊,張 航
(天津農(nóng)學(xué)院計(jì)算機(jī)與信息工程學(xué)院,天津 300384)
在魚苗養(yǎng)殖的過程中,飼養(yǎng)、運(yùn)輸、銷售等環(huán)節(jié)都需要對魚苗進(jìn)行定量計(jì)數(shù)。目前我國普遍采用人工統(tǒng)計(jì)的方法來計(jì)數(shù),費(fèi)時(shí)費(fèi)力,準(zhǔn)確度也無法保證,還會(huì)對魚苗造成損傷,因此目前無論魚苗的生產(chǎn)者、銷售者還是購買者,都迫切需要一種簡便、快捷、準(zhǔn)確而便宜的魚苗計(jì)數(shù)系統(tǒng)來進(jìn)行魚苗計(jì)數(shù)[1]。
傳統(tǒng)的魚苗計(jì)數(shù)方法主要的方法有3種,分別是:
這種計(jì)數(shù)方法主要應(yīng)用于水花、烏子等魚苗計(jì)數(shù)。首先用一個(gè)細(xì)密的網(wǎng)兜將魚苗去水,攪拌使其均勻分布,然后用量杯打上一杯,再將其分為若干份,隨機(jī)抽取一份記錄魚苗數(shù)量,再乘以總的份數(shù)就可以得出一杯魚苗的總數(shù)量,再看看一共打了多少杯,然后進(jìn)行計(jì)算,最后得出魚苗的總數(shù)量。
此法用于朝苗(寸苗)比較多。先用魚篩將魚苗大、小區(qū)分,然后采用一個(gè)可以漏水的篩子,打上一篩,將其分為若干份進(jìn)行清點(diǎn)計(jì)數(shù),以此類推,得出魚苗的總數(shù)量。
這種方法主要應(yīng)用于經(jīng)濟(jì)價(jià)值高的品種,或者較大的魚苗及二齡魚種的計(jì)數(shù)。對于經(jīng)濟(jì)價(jià)值高的品種,首先稱出1 g魚苗,然后再計(jì)算出每1 g多少尾,再按容器稱取相應(yīng)的質(zhì)量;對于較大的魚苗或者二齡魚種,則先稱出0.5 kg的魚苗,記錄其尾數(shù),再計(jì)算出總質(zhì)量,乘以單位質(zhì)量尾數(shù),得出魚苗總數(shù)量。
這些傳統(tǒng)的魚苗計(jì)數(shù)方法往往費(fèi)時(shí)費(fèi)力,且準(zhǔn)確率不高,所以找到一種可以快速準(zhǔn)確且不傷魚苗的自動(dòng)計(jì)數(shù)方法是非常有必要的。
目前對于魚苗計(jì)數(shù)的研究并不廣泛,并且大部分是采用硬件的方法對魚苗進(jìn)行計(jì)數(shù)。
在日本,矢田真美和陳瀘利用噴水滾筒配合光敏傳感器進(jìn)行魚苗計(jì)數(shù),這個(gè)方法主要分為兩個(gè)步驟:①滾筒式進(jìn)行分選,使魚苗幾乎等大的進(jìn)入提前準(zhǔn)備好的隔成若干格的盛魚盤的每個(gè)格子中;②滾筒式魚體分離計(jì)數(shù):魚體在滾筒上均勻移動(dòng)進(jìn)入隔板間隙,在隔板上方安裝光敏傳感器,魚逐條經(jīng)過傳感器達(dá)到計(jì)數(shù)的目的,這種方法效率太低且成本較高。
廈門大學(xué)張康德提出利用光電比色計(jì)和分光光度計(jì)發(fā)測量魚苗數(shù)目,這個(gè)方法原理是:當(dāng)平行光線找的測試的液體時(shí),根據(jù)光線在液體的不同部位透光強(qiáng)度不同來衡量測試液體中魚苗的數(shù)目,這種方法只能測量靜態(tài)特定容器中的魚苗,應(yīng)用前景不樂觀。
現(xiàn)在還有一些采用發(fā)光二極管測量魚苗數(shù)量的方法,這種方法要求魚苗個(gè)體差異不能太大,測量速度也比較慢。綜上所訴,魚苗的自動(dòng)計(jì)數(shù)課題研究還在起步階段,發(fā)展空間還很大。
灰度化處理就是將一幅色彩圖像轉(zhuǎn)化為灰度圖像的過程。彩色圖像分為R、G、B 3個(gè)分量,分別顯示出紅綠藍(lán)等各種顏色,灰度化就是使彩色的R、G、B分量相等的過程。直接處理彩色圖像會(huì)大大地降低系統(tǒng)的執(zhí)行速度,所以通常將輸入的彩色圖像轉(zhuǎn)換為灰度圖像[4]??梢灾苯釉贛ATLAB內(nèi)調(diào)用imshow(GrayImage)函數(shù)來實(shí)現(xiàn)圖像灰度化。灰度化后的圖像如圖1所示。
對魚苗圖像進(jìn)行灰度化處理后,下一步需要將灰度化后的魚苗圖片進(jìn)行圖像分割,將圖像中的魚苗從背景中分離出來,即使目標(biāo)與背景分離。圖像分割指的是根據(jù)灰度、顏色、空間、紋理、幾何形狀等特征,將圖像劃分為若干個(gè)互不相交的區(qū)域,使得這些特征在同一區(qū)域內(nèi)表現(xiàn)出一致性或相似性,在不同的區(qū)域內(nèi)表現(xiàn)出明顯的不同[5]。本文采用的分割方法是閾值分割,進(jìn)行閾值分割時(shí),需要先找到一個(gè)閾值T,灰度值大于T的像素點(diǎn)賦值為1,為目標(biāo)物體;小于T的像素點(diǎn)賦值為0,為背景[2]。這樣目標(biāo)和背景就可以很好的劃分開來。閾值分割分為兩種方式:①全局閾值是選用一個(gè)固定的閾值適用于整個(gè)圖像;②局部閾值是在一個(gè)圖像上須知不是一個(gè)固定的常數(shù)。由于在魚苗圖像中背景灰度恒定,魚苗和背景的對比度幾乎不變,因此采用全局閾值方法。在MATLAB中調(diào)用工具箱中的graythresh函數(shù)計(jì)算全局灰度閾值。對魚苗圖片進(jìn)行閾值分割后得到的圖像如圖2所示。
完成閾值分割后,還需要對處理過圖像進(jìn)行濾波去噪處理。常用的濾波方法有高斯濾波、二值濾波、平滑濾波等,本文所采用的濾波方式是基于形態(tài)學(xué)的閉運(yùn)算進(jìn)行圖像濾波處理。閉運(yùn)算是一個(gè)先膨脹后腐蝕的過程:腐蝕是一種消除邊界點(diǎn),使邊界向內(nèi)部收縮的過程,可以用來消除小且無意義的物體;膨脹是將與物體接觸的所有背景點(diǎn)合并到該物體中,使邊界向外部擴(kuò)張的過程,可以用來填補(bǔ)物體中的空洞。圖像的閉運(yùn)算常常用來對目標(biāo)圖像分開的區(qū)域進(jìn)行連接及對圖像中細(xì)小縫隙進(jìn)行填補(bǔ),通過適當(dāng)?shù)剡x擇結(jié)構(gòu)元素,圖像的閉運(yùn)算可以令圖像的填補(bǔ)結(jié)果具有一點(diǎn)的幾何特征,適當(dāng)?shù)貙D像進(jìn)行閉運(yùn)算有時(shí)可以使圖像變得更加清晰連貫,同時(shí)可以避免原圖像中線條加粗,所以使用閉運(yùn)算對魚苗圖像進(jìn)行濾波處理,可以提高圖片的質(zhì)量。在MATLAB中可以調(diào)用bwmorph函數(shù)進(jìn)行閉運(yùn)算,對魚苗圖片進(jìn)行形態(tài)學(xué)閉運(yùn)算后,結(jié)果如圖3所示。
完成圖像分割、濾波之后,可以利用MATLAB自帶的bwlabel函數(shù)對二值圖像進(jìn)行連通域計(jì)數(shù)[3]。魚苗的自動(dòng)計(jì)數(shù)系統(tǒng)計(jì)數(shù)結(jié)果如下圖4所示。
本文采用計(jì)算機(jī)圖像處理的方法,利用MATLAB處理采集到的魚苗圖像進(jìn)行自動(dòng)計(jì)數(shù)。本系統(tǒng)通過對魚苗圖像進(jìn)行二值化、形態(tài)學(xué)操作等預(yù)處理,在此基礎(chǔ)上將圖像用閾值分割等一系列操作后完成自動(dòng)計(jì)數(shù)。系統(tǒng)的計(jì)數(shù)結(jié)果表明基于MATLAB的魚苗自動(dòng)計(jì)數(shù)系統(tǒng)具有較高的準(zhǔn)確性,并且此系統(tǒng)還具有自動(dòng)化、高效率、不傷害魚苗等特點(diǎn),為自動(dòng)計(jì)數(shù)提供了一種有效的實(shí)施途徑。