基于MATLAB的冰箱水果保鮮識別系統

摘要:本作品旨在研究和實現基于MATLAB軟件的冰箱水果保鮮識別系統,針對多種常見水果混合的圖像進行處理和識別。首先,根據水果與背景的差異選擇合適的閾值,對圖像進行去噪和對比度增強,然后進行二值化處理。接下來,對圖像進行邊緣檢測,選定連通區域,并對這些區域進行標記。在此基礎上,通過快速提取水果的顏色、形狀和大小等特征,進行準確的水果識別。最終,該系統能夠實現對不同種類水果的正確分揀,提高水果保鮮管理的效率。

關鍵詞:MATLAB,水果識別,圖像處理,二值化,邊緣檢測,特征提取,自動分揀,冰箱保鮮系統

基于MATLAB的冰箱水果保鮮識別系統的圖1

圖 冰箱水果保鮮識別系統運行結果圖

  1. 功能模塊

這個基于MATLAB的冰箱水果保鮮識別系統區別于常用的冰箱,系統將增加三個功能如下:圖像識別、食譜搜索、時間記錄。

圖像識別:1、將彩色圖像二值化或直接使用灰度圖像,對食物圖片進行識別,記錄食物個數。2、通過識別灰度圖像食物中的陰影區域,區分食物的好壞,并提醒顯示。3、食物包含水果的識別(蘋果、香蕉、梨等)。

食譜搜索:通過先把食譜內容存入MATLAB中,然后搜索關鍵字讀取食譜內容。

時間記錄:1、記錄當前放入食物的日期和時間,并保存到數據庫中。2、隨著食物存放時間的增加,更新存放的記錄時長。

界面形式:界面直接通過MATLAB軟件GUI界面運行顯示并進行相關操作。

最終效果:運行程序后,通過插入食物圖片模擬將食物放入冰箱的過程,插入成功后會記錄并保存當前日期,時間和食物個數,隨著時間的變化,記錄時長也會更新。通過圖像識別區分食物的好壞,并提醒顯示。另外,還可以通過搜索關鍵字查找到已存的相關食物的食譜的內容。

研究方法:此系統將使用MATLAB進行程序編寫。采用GUI設計,進行圖像處理。數據使用MySQL數據庫進行存儲讀取。

基于MATLAB的冰箱水果保鮮識別系統的圖2

圖 基于MATLAB的冰箱水果保鮮識別系統框圖

  1. 設計方案

在計算機中,圖像由像素逐點描述,每個像素點都有一個明確的位置和色彩數值。使用Matlab軟件讀取圖像,以矩陣形式存放圖像數據,其掃描規則是從左向右,從上到下。

對于一副水果圖像為了處理方便,我們首先要把彩色圖像轉化為灰度圖像。然后對圖像進行二值化處理來獲得每個水果的區域特征。

在水果與背景接觸處二值化會導致圖像邊緣部分有斷裂,毛躁的部分。所以采用邊緣提取以彌補斷裂的邊緣部分,然后基于數學形態算子對圖像進行去除斷邊,圖像填充等必要的后續處理。經過圖像分割后,水果和背景很明顯地被區分開來,然后需要對每種水果的特征進行提取。

先對圖像進行標簽化,所謂圖像的標簽化是指對圖像中互相連通的所有像素賦予同樣的標號。經過標簽化處理就能把各個連通區域進行分離,從而可以研究它們的特征。

  1. 關鍵技術

圖像二值化

1、灰度化

% 將真彩色圖像 i 轉化為灰度圖像 I

I=rgb2gray(i);

在 RGB 模型中,如果 R=G=B 時,則彩色表示一種灰度顏色,其中 R=G=B 的值叫灰度值,因此,灰度圖像每個像素只需一個字節存放灰度值(又稱強度值、亮度值),灰度范圍為0-255。

2、二值化

% level 為閾(yu) 值,取值從0到1.

% 本項目考慮到圖片背景顏色為白色,亮度較大,因此選取 `level=0.9` 來實現二值化。

I=im2bw(i,level)

一幅圖像包含目標物體、背景還有噪聲,要想從多值的數字圖像中直接提取出目標物體,最經常使用的方法就是設定一個全局的閾值 T,用 T 將圖像的數據分成兩部分:大于 T 的像素群和小于 T 的像素群。將大于 T 的像素群的像素值設定為白色(或者黑色),小于 T 的像素群的像素值設定為黑色(或者白色)。

比方:計算每個像素的(R+G+B)/3,假設>127,則設置該像素為白色,即R=G=B=255;否則設置為黑色,即R=G=B=0。

(二)邊緣提取

1、開運算

I=imopen(i,SE);

先腐蝕后膨脹的過程稱為開運算。(看上去把細微連在一起的兩塊目標分開了)

開運算作用:可以使邊界平滑,消除細小的尖刺,斷開窄小的連接,保持面積大小不變等。

I=imerode(i,SE);

腐蝕運算作用:消除物體邊界點,使邊界點向內部收縮,可以把小于結構元素的物體去除。

膨脹的作用:將與物體接觸的所有背景點合并到物體中,是目標增大,可填補目標中的空洞。

2、數學形態學運算

% bwmorph 函數是對圖像進行指定的形態學操作。

% ‘remove’即代表如果一個像素點的4鄰域都為1, 則該像素點將被置0;該選項將導致邊界像素上的1被保留下來。

I=bwmorph(i,'remove');

提取圖像種水果的邊界用于標記各個區域

(三)水果分類

1、獲得連通區域的屬性

這里要用到了在 Matlab 圖像處理工具箱中非常重要的一個圖像分析函數:regionprops.

顧名思義:它的用途是 get the properties of region ,即用來度量圖像區域屬性的函數.

STATS =regionprops(L,properties)

描述測量標注矩陣L中每一個標注區域的一系列屬性.L中不同的正整數元素對應不同的區域,例如:L中等于整數1的元素對應區域1;L中等于整數2的元素對應區域2;以此類推.

此函數用來獲取每個水果的中心位置,及其外接橢圓的長,短軸長度。中心位置用來計算水果的顏色特征值及最終顯示水果名稱。外接橢圓的長,短軸長度用來計算水果的似圓性特征,以判斷其大致形狀。

2、獲取特征并判別函數

本項目根據水果在圖像中表現出來的特點,從面積特征,似圓性特征,顏色(rgb值和hsv值)特征對圖像中的桃子、蘋果、香蕉 、西瓜、菠蘿、梨子等進行特征提取。最后按照篩選出來的特征對水果進行分類識別。

(1)顏色特征

本項目使用兩種計量方式來測得水果的顏色值。

  • RGB顏色模式:

對于彩色圖像,可分解為 RGB 三幅單色圖像。每一副圖像中的像素分布情況都代表了改顏色的程度信息。根據常識可知上述6種水果中蘋果和桃子的紅色含量要比其他水果豐富的多,西瓜的紅色含量最小。

  • Hsv顏色模式:

這個模型中顏色的參數分別是:色彩(H),純度(S),明度(V)。 HSV模型的三維表示從RGB立方體演化而來。設想從RGB沿立方體對角線的白色頂點向黑色頂點觀察,就可以看到立方體的六邊形外形。六邊形邊界表示色彩,水平軸表示純度,明度沿垂直軸測量。

  • H參數表示色彩信息,即所處的光譜顏色的位置。該參數用一角度量來表示,紅、綠、藍分別相隔120度。互補色分別相差180度。純度S為一比例值,范圍從0到1,它表示成所選顏色的純度和該顏色最大的純度之間的比率。S=0時,只有灰度。V表示色彩的明亮程度,范圍從0到1。有一點要注意:它和光強度之間并沒有直接的聯系。

(2)似圓性特征

似圓性是在計算出每塊連通區域的外接橢圓的短軸長度和長軸長度,來測量水果形狀的似圓性。我們用長軸長度除以短軸長度得到一個比例。這個值與1越接近,說明水果與圓越相似。同理,該值越比1大,說明水果越不像圓。根據常識可知,上述6個水果中西瓜,蘋果,桃子似圓性很高,而香蕉,菠蘿似圓性最低。

(3)面積特征

經過標簽化的不同區域的面積,可以用該區域像素數量來計算。對整幅圖像進行掃描,計算所有連通區域的面積。根據常識可知:西瓜在上述6個水果中面積是最大的一個,菠蘿其次。

特征統計表格

基于MATLAB的冰箱水果保鮮識別系統的圖3

基于MATLAB的冰箱水果保鮮識別系統的圖4

基于MATLAB的冰箱水果保鮮識別系統的圖5

原始圖像1 原始圖像2 原始圖像3

原始圖像1

梨子

蘋果

桃子

香蕉

菠蘿

r

0.94

0.80

0.72

1.04

0.55

g

0.81

0.17

0.19

0.85

0.56

b

0.28

0.06

0.13

0.53

0.47

Hsv均值

0.11

0.2

0.5

0.16

0.26

面積

2671

2224

1936

3604

3361

似圓性

1.6

1.1

1.07

1.78

1.55


香蕉

桃子

梨子

西瓜

蘋果

r

1.03

1.01

0.9

0.29

1.01

g

0.95

0.99

0.73

0.38

0.99

b

0.20

1.0

0.35

0.22

1.00

Hsv值

0.14

0.25

0.11

0.29

0.89

面積

2191

1572

1387

2914

1443

似圓性

2.2

1.0

1.6

1.0

1.03


蘋果

桃子

西瓜

香蕉

梨子

r

0.86

1.07

0.20

0.92

1.02

g

0.19

1.06

0.53

0.31

1.00

b

0.22

1.06

0.30

0.26

0.95

Hsv值

0.63

0.26

0.39

0.12

0.108

面積

1190

1660

2328

1894

1082

似圓性

1.12

1.06

1.13

2.16

1.6921

4、特征選擇及最終結果圖

  • 梨子:梨子的hsv值是最小的,且因為梨子有柄的關系,梨子的似圓性在1.4至1.6之間,梨子的r值和g值都普遍大于0.6;
  • 蘋果:蘋果的似圓性在1至1.1之間,蘋果紅的色素較多,藍色和綠色色素較少使得其g值和b值都普遍小于0.4;
  • 桃子:似圓性在1至1.2之間,hsv的值小于0.6,紅色色素較多使得其r值至少為0.7;
  • 香蕉:香蕉的似圓性數值是最大的至少為1.8,且其成黃色,其hsv的值都小于0.2;
  • 菠蘿:菠蘿的似圓性數值僅次于香蕉為第二大,其hsv值都小于0.3,且其紅色色素少r值都小于0.7;
  • 西瓜:西瓜的面積是所有水果中最大的,且其紅色色素較少r值都小于0.4,,似圓性在1至1.2之間;

根據水果在圖像中表現出來的特點,從面積特征,似圓性特征,顏色(RGB值和HSV值)特征對圖像中的桃子 蘋果 香蕉 西瓜 菠蘿 梨子等進行特征提取。最后按照篩選出來的特征對水果進行分類識別。

識別結果圖如下所示:

基于MATLAB的冰箱水果保鮮識別系統的圖6

基于MATLAB的冰箱水果保鮮識別系統的圖7

基于MATLAB的冰箱水果保鮮識別系統的圖8

圖1的識別結果圖 圖2的識別結果圖 圖3的識別結果圖

  1. 部分程序代碼截圖
基于MATLAB的冰箱水果保鮮識別系統的圖9

  1. 結論

總的來說水果識別良好,識別較為準確。對于偏亮和偏暗的圖像,由于作品同時采用了HSV模型和RGB模型判斷,因此圖片的亮度對識別沒有太大影響,識別率還算理想。但是正是由于獲取顏色特征時同時采用HSV模型和RGB模型的值判斷,導致去噪參數不能太大,待識別圖片出現較多噪聲的情況下識別不是太理想,因此有些識別存在誤差。

而如果放棄使用HSV模型或者RGB模型中的一個,則能較好進行去除噪聲,但是這樣顏色特征有少了一樣,對于偏亮和偏暗的圖像,顏色判定時會有誤差,這是沒有解決好的一個主要問題。

最后,有相關需求歡迎通過公眾號“320科技工作室”與我們聯絡

登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP