摘 要: 利用計算機圖像處理技術(shù)在水產(chǎn)養(yǎng)殖業(yè)中實現(xiàn)對魚類生長的監(jiān)控,。
關(guān)鍵詞: 數(shù)字圖像處理 水產(chǎn)養(yǎng)殖 Matlab
近年來,隨著經(jīng)濟的發(fā)展及人們生活水平的日益提高,,對水產(chǎn)品需求量也越來越大,。因此工廠化水產(chǎn)養(yǎng)殖已成為水產(chǎn)養(yǎng)殖業(yè)的主要生產(chǎn)方式,。但是,在工廠化水產(chǎn)養(yǎng)殖場中微生物容易大量繁殖,,病害越來越多,,而魚藥的濫用很容易造成魚類短期內(nèi)大量死亡的事故。因此如何早期發(fā)現(xiàn)養(yǎng)殖水池中魚出現(xiàn)病變或死亡,,以便采取相應的補救措施,,已成為水產(chǎn)養(yǎng)殖業(yè)中一項重要的任務。本文將介紹一種利用數(shù)字圖像處理技術(shù)對養(yǎng)殖現(xiàn)場中魚類生長情況實現(xiàn)監(jiān)控的系統(tǒng),。
1 系統(tǒng)構(gòu)成
圖像處理一般具有較復雜的運算,,占用較多CPU資源。為了能將圖像處理功能與整個水產(chǎn)養(yǎng)殖計算機監(jiān)控系統(tǒng)融合,本文所述的圖像處理方法將依據(jù)快速,、簡易,、準確的原則。系統(tǒng)構(gòu)成示意圖如圖1所示,。
該微機圖像處理系統(tǒng)常用部件由攝像機,、視頻圖像采集卡、計算機和打印機等基本硬件組成,。目前普遍采用的固體器件攝像機是CCD類型,。CCD攝像機是由電荷耦合元件組成的圖像探測器,具有體積小,、重量輕,、結(jié)構(gòu)緊湊等優(yōu)點。視頻圖像采集卡可以將攝像機得到的模擬圖像信號轉(zhuǎn)換成數(shù)字圖像信號,,供計算機處理,。根據(jù)圖像采集的速度,視頻采集卡可以分為:中速采集卡,、實時單頻采集卡,、實時采集卡三種。本系統(tǒng)采用中速采集卡,,采集速度約為1幀/s,。視頻圖像采集卡插在微機的擴展槽上,與攝像機連接使用,。計算機采用CPU為PentiumⅢ1G,,256MB內(nèi)存,40GB硬盤的PC機,。根據(jù)實際情況選擇配置數(shù)據(jù)庫的大小,,本系統(tǒng)為100GB容量,也可適當減少或增容,。打印機采用普通噴墨或激光打印機即可。
本系統(tǒng)的工作過程:攝像機拍攝池塘的實時畫面,,傳送給視頻圖像采集卡,,圖像采集卡負責將模擬圖像信號轉(zhuǎn)換成計算機能處理的數(shù)字圖像信號,計算機根據(jù)編制好的程序進行處理,、識別,、報警,將處理結(jié)果存入數(shù)據(jù)庫,,需要時可打印出圖像,。
2 應用原理
通過計算機圖像識別魚類發(fā)生病變的原理是:當魚類生活的水質(zhì)被污染、魚類生病或藥物中毒,從而出現(xiàn)不適或死亡時,,魚會側(cè)翻,,腹部顏色較淺部分會浮在水面,與水池較深的背景顏色有較大的區(qū)別,,容易區(qū)分,。并且在養(yǎng)殖場中統(tǒng)一放養(yǎng)的魚具有品種相同,大小相近等特點,。這就可以利用統(tǒng)計方法,,得出分割病魚與池塘水背景色的閾值,同時也可以得到某一段時期池塘內(nèi)魚的大小及腹部白色區(qū)域的大小,。因此,,可將得到原始圖像二值化,將病魚的白色腹部與背景分割開,,統(tǒng)計白色區(qū)域部分的數(shù)目和大小,,當最小白色區(qū)域大于等于該段時間內(nèi)的統(tǒng)計值的下限,且小于統(tǒng)計值的上限時,,即認為有魚出現(xiàn)不適反應或已經(jīng)死亡,,需要采取措施。
3 軟件設(shè)計
本系統(tǒng)的圖像處理程序由Matlab語言編制而成,。Matlab是一種應用廣泛的編程工具,,語法簡單,函數(shù)豐富,,具有優(yōu)秀的圖形顯示功能及強大的人機交互能力,。特別是在圖像處理方面更具有明顯的優(yōu)勢:強大的矩陣運算功能、圖形顯示方便,,有專門的灰度及彩色圖像顯示函數(shù),、豐富的圖像處理函數(shù)庫。它大大降低了程序開發(fā)難度,,縮短了開發(fā)周期,。圖像處理系統(tǒng)程序流程圖如圖2所示。
首先,,清除Matlab所有的工作平臺變量,,關(guān)閉已打開的圖形窗口,讀入一幅圖像,。
clear,;
close all;
I=imread(′5.jpg′),; %讀入待處理圖片
Y=rgb2gray(I),; %RGB圖轉(zhuǎn)換為灰度圖
圖像在輸入,、傳送、處理過程中難免會有干擾,,形成噪聲,,降低圖像質(zhì)量,因而造成圖像處理的困難或者產(chǎn)生不良的視覺效果,。中值濾波可以抑制干擾,,消除噪聲。其函數(shù)如下:
medfilt2(Y),;
灰度圖像二值化的關(guān)鍵是選擇好分割閾值,,把病魚與背景分割開。根據(jù)多次實驗得到統(tǒng)計數(shù)據(jù),,閾值為225時,,可以較好地把待處理對象與背景分割開,程序如下:
灰度圖像的直方圖和其二值化后的圖像如圖3,、圖4所示,。
二值化后的圖像中還含有不少白色斑點。很明顯,,這些白色斑點不是病魚造成的,,所以必須去除掉,否則將會影響下一步處理,。根據(jù)經(jīng)驗將該二值圖像反復收縮擴張4次后能較好地去除不必要的白色斑點,,程序如下:
%以下程序?qū)Χ祱D像進行2次擴張
該程序中zaikuozhanghanshu( )為自定義的擴張函數(shù),shousuohanshu( )為自定義的收縮函數(shù),。
程序執(zhí)行后得到處理后的圖像如圖5所示,。
利用力學中矩的概念,將區(qū)域內(nèi)部的象素作為質(zhì)點,,象素的坐標作為力臂,,從而以各階矩的形式來表示區(qū)域特征。設(shè)圖像各象素的質(zhì)量為1,,即1-象素的質(zhì)量就等于它的象素值,;S為圖形面積;(I,,j)為圖形內(nèi)象素坐標,。矩的公式可表示為:
即為圖像中1-象素之和,也就是圖像的面積,。
利用函數(shù):[Y,bw]=bwlabel(G),,將圖5中的2塊白色斑點分別用1和2標注,,可以判斷出2塊白色點的大小,。根據(jù)實驗統(tǒng)計數(shù)據(jù),在本段時期單條魚病變或死亡時所暴露的白色區(qū)域面積為M(0,,0)=1000±200,,將用1和2標注好的2塊白色區(qū)域中最小區(qū)域分別與M(0,0)值下限和上限比較,。若值落在二者之間,,則說明魚出現(xiàn)不適或死亡現(xiàn)象,系統(tǒng)報警,,否則正常,。
4 總 結(jié)
利用上述方法進行圖像處理,具有快速,、簡易,、準確等優(yōu)點。程序編制簡單,,程序代碼少,,可以方便地嵌入到VC++系統(tǒng)監(jiān)控程序中,使水產(chǎn)養(yǎng)殖環(huán)境監(jiān)控系統(tǒng)具有更多的功能,,滿足監(jiān)控現(xiàn)場更高的要求,。系統(tǒng)能有效地監(jiān)視魚類的生長情況,具有良好的應用前景,。
參考文獻
1 張兆禮,,趙春暉,梅曉丹.現(xiàn)代圖像處理技術(shù)及Matlab實現(xiàn).北京:人民與郵電出版社,,2001
2 方如明,,蔡健榮,許俐.計算機圖像處理技術(shù)及其在農(nóng)業(yè)工程中的應用.北京:清華大學出版社,,1999