煙葉烤制過程中階段特征圖像識(shí)別算法研究
發(fā)布時(shí)間:2019-08-25 來源: 人生感悟 點(diǎn)擊:
摘 要:本文設(shè)計(jì)了一套針對(duì)煙葉自動(dòng)化烤制過程中圖像處理與特征圖樣識(shí)別的算法,并給出了其中一些步驟的C語言和MATLAB程序以作模擬。以期為煙葉生產(chǎn)廠商自動(dòng)化生產(chǎn)流程中關(guān)鍵階段準(zhǔn)確識(shí)別提供思路。
關(guān)鍵詞:煙葉烤制;圖像處理;圖像識(shí)別;自動(dòng)化
1 烤煙制作全過程中各狀態(tài)圖像的特征分析
1.1 鮮煙狀態(tài)(烘烤前):煙葉呈現(xiàn)鮮綠色,葉片明顯舒展文理較為平整、圖中的“溝壑”較少,葉片過渡平整。
1.2 葉片變軟狀態(tài)(失水20%):煙葉明顯變黃,呈現(xiàn)黃綠色,葉片開始蜷縮但“溝壑”仍較少,葉片較為平整。
1.3 主脈變軟狀態(tài)(失水30%):葉片基本全部變黃,只有葉片中部尚存在零星綠色(應(yīng)為煙葉的輸水管部分),葉片蜷縮現(xiàn)象更加明顯。
1.4 勾尖卷邊狀態(tài)(失水40%):葉片黃色繼續(xù)加深,蜷縮明顯,出現(xiàn)“溝壑”現(xiàn)象。
1.5 小打筒狀態(tài)(失水55%):黃色略微加深,“溝壑”繼續(xù)加深。
1.6 大打筒狀態(tài)(失水75%):葉片最黃,“溝壑”最為明顯。
1.7 干筋狀態(tài)(烘烤結(jié)束):葉片黃色略微回淺(即更鮮亮),綠色含量最少,“溝壑”現(xiàn)象依舊比較明顯但比較前一狀態(tài)有所舒展,葉片色澤均勻。
2 本文設(shè)計(jì)的工作流程
2.1 CCD數(shù)碼相機(jī)定時(shí)拍攝圖像直接傳至計(jì)算機(jī)端,每次圖像保存兩份;
2.2 對(duì)一份圖片分別進(jìn)入RGB通道處理,處理前先進(jìn)行巴特沃斯低通濾波或中值濾波(普遍認(rèn)為巴特沃斯低通濾波效果更好,如采用中值濾波經(jīng)重慶大學(xué)楊陽[3]等人反復(fù)試驗(yàn)測(cè)試得出采用5 X 5鄰域的中值濾波效果較好),再分別求出其紅綠藍(lán)分量特征值。紅綠藍(lán)三色特征值分別達(dá)到146、115、43時(shí)可以認(rèn)為煙葉是烤制完成的干筋狀態(tài)。三色中有一色不符合即為未完成,刪除舊圖像后從新提取新的圖像進(jìn)行檢測(cè)。顏色識(shí)別還可以利用二值化,當(dāng)三色中不符合要求的點(diǎn)數(shù)少到一定值后,可以認(rèn)為煙葉烤制完成。
2.3 當(dāng)煙葉的顏色達(dá)標(biāo)后,對(duì)所保存的另一張相同圖像只使用其R分量做下述處理,提取其形態(tài)學(xué)特征(煙葉顏色不能達(dá)標(biāo)時(shí)此步驟直接略去):
①在配置OpenCV庫函數(shù)的C語言編輯器中使用Sobel 算子或Canny 算子等提取圖像邊緣,如需使用C語言編程,可以考慮在配置好OpenCV庫函數(shù)的C語言編輯器下運(yùn)行Sobel算子函數(shù),鄭州大學(xué)郭明儒[4]曾給出如下計(jì)算方法:cvSobel(const CvArr* src, CvArr* dst, int xorder, int yorder, int aperyure_size=3); src:輸入圖像;dst:輸出圖像; xorder:x方 向上的差分階數(shù); yorder:y方向上的差分階數(shù); aperyure_size:擴(kuò)展Sobel核的窗口階數(shù),必須是1,3,5,7。
、谔崛『蟮膱D像需要經(jīng)過1~2次開運(yùn)算腐蝕膨脹消除噪聲后提取主筋,再利用Hough變換提取出煙葉的主脈部分。提取后的紋理與上文表格中提到的紋理熵等進(jìn)行比較,如果其取值在合理范圍內(nèi),就說明烤制完成。
3 針對(duì)所使用的算法編制相應(yīng)的處理程序
3.1 MATLAB編程
。1) 圖像讀取與存儲(chǔ):
讀取f=imread(‘C:\Users\Administrator\1.jpg’);
存儲(chǔ)imwrite(f,’C:\Users\Administrator\Desktop’)
for i=1:10
str=[‘C:\Users\Administrator\Desktop\img’,num2str(i),’.tif’];
f=imread(str);
end
。2) 濾波:
>> w=ones(2);
>> g1=imfilter(f,w,’replicate’);
>> subplot(2,2,1);imshow(f);title(‘origin image’);
>> subplot(2,2,2);imshow(g1);title(‘smooth image’);
>> g2=medfilt2(f(:,:,1),[4,4]);
>> subplot(2,2,3);imshow(g2,[]);title(‘med filter’);
>> se=strel(‘square’,4);
>> g3=imclose(f(:,:,1),se);
>> subplot(2,2,4);imshow(g3,[]);title(‘imclose’);
。3) 形態(tài)學(xué)分析:條紋間距
>> f4=f2(50:350,200:300);
>> figure,imshow(f4);
>> [r,c]=find(f4==1);
。4) 閾值化:
>> f=im2double(f(:,:,1));
>> subplot(2,2,1);imshow(f);title(‘origin iamge’);
>> [gv t]=edge(f,’sobel’);
>> subplot(2,2,2);imshow(gv,[]);title(‘sobel’);
>> [gf t]=edge(f,’log’);
>> subplot(2,2,3);imshow(gf,[]);title(‘log’);
>> [gc t]=edge(f,’canny’);
相關(guān)熱詞搜索:煙葉 算法 過程中 識(shí)別 圖像
熱點(diǎn)文章閱讀