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