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