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