在農(nóng)業(yè)中,通常希望獲取不同土地的面積。雖然獲取這些土地的面積操作相對容易,但是卻涉及高額的費用。另外,如果對于不規(guī)則形狀的土地,測量土地面積的大小就變得相對困難。
幸運的是,有大量以衛(wèi)星圖像的形式公開提供的農(nóng)場土地數(shù)據(jù)。如下圖所示就是得到的土地的圖片。根據(jù)這樣的圖片,應(yīng)用圖像處理算法,就可以計算得到每塊土地的面積。
我們可以使用導(dǎo)數(shù)濾波器,因為它似乎與人類如何區(qū)分土地或地塊的方式相匹配。當我們觀察物體時,我們使用對比度和陰影來確定物體的形狀,種類。類似地,可以使用導(dǎo)數(shù)濾波器來尋找對比區(qū)域。如果像素值與其周圍像素之間的差大于閾值,則將其標記為1,否則標記為0。這將創(chuàng)建一個具有選定原始圖像邊緣的二進制圖像。
原始圖像中存在大量噪點和細節(jié),這可能會降低算法的成功率。建議在應(yīng)用導(dǎo)數(shù)濾波器操作之前,對圖像進行模糊濾波去除噪聲。我們可以使用任意的模糊濾波器完成圖像去噪。由于我們主要目的是消除噪聲和微小的細節(jié),同時保留繪圖的顏色以用于對比,因此我們使用了4x4的中值濾波器。之后對圖像進行灰度化,得到灰度圖像以便后續(xù)進行邊緣檢測。具體結(jié)果如下圖所示。
之后嘗試了三種邊緣檢測方法以找到最佳結(jié)果。
第一種邊緣檢測濾波器是Sobel濾波器。該濾波器在圖像的每個像素上執(zhí)行梯度檢測。內(nèi)置的Matlab、opencv函數(shù)可在水平和垂直方向上執(zhí)行操作,并將結(jié)果組合在一起。具體結(jié)果如下所示。
通過結(jié)果可以知道生成的圖像幾乎沒有噪點。但是,不幸的是將濾波后的圖像與原始圖像進行比較,可以看出,地塊之間的許多分隔線沒有被很好地拾取。在農(nóng)田的顏色與相鄰地塊差異不大的地區(qū)尤其如此。
第二種邊緣檢測方法是Canny過濾器。濾波結(jié)果在下面給出,從Canny濾波結(jié)果可以看出Canny濾波器檢測了了更多的邊緣。但是同樣存在缺點,這種方式會產(chǎn)生更多的噪聲。考慮到Canny算法將通過幅度閾值函數(shù)的像素與通過稍低閾值函數(shù)的相鄰像素合并,這是可以預(yù)期的。Canny算法比簡單的Sobel濾波器更為復(fù)雜。它還取決于事先要進行的高斯平滑。使用中值濾波器可能會阻止最佳結(jié)果。
第三種濾波器是高斯濾波器的拉普拉斯算子。該濾波器提取的結(jié)果如下圖所示。
通過結(jié)果我們可以發(fā)現(xiàn),無論我們使用什么過濾器,都可以看到大多數(shù)突出的道路都被檢測到了。但是,農(nóng)田內(nèi)部的小區(qū)域和靠近道路的房屋是否產(chǎn)生的噪聲取決于我們選取的濾波器種類。農(nóng)田圖像的這一特征使其非常適合高斯濾波器的拉普拉斯算子。查看測試結(jié)果,可以得出一個比較理想的結(jié)果。找到的道路數(shù)量最多,噪音最小。
為了進一步去除圖像中的噪聲,去除總像素面積小于平均像素面積值的所有白色區(qū)域。這個閾值是我們經(jīng)過多次試驗得到的一個經(jīng)驗值。小伙伴也可以嘗試其他的閾值。
之后對圖像進行反轉(zhuǎn),得到田地的區(qū)域。之后對這個結(jié)果進行尺寸位4的膨脹運算。
有了這個圖像,計算每個土地的面積就很簡單了。Matlab(或OpenCV)的regionprop函數(shù)可用于查找每個區(qū)域的面積。仍有少量田地不是真正的田地,有些是道路或其他細節(jié)。為了減輕這些面積,我們只計算面積大于平均值減去一個標準偏差的區(qū)域。
然后為每個區(qū)上色,并在其位置打印其像素尺寸。結(jié)果可以在下圖中看到。打印的尺寸是該區(qū)域中像素的數(shù)值。除非像素和圖像尺寸之間存在已知比例,否則這些值將毫無用處。但是,我們知道衛(wèi)星圖(例如Google Maps)往往帶有刻度,這就位像素數(shù)值提供了意義。
結(jié)果還是比較滿意。該應(yīng)用程序能夠?qū)⒋蠖鄶?shù)地塊分成自己的特定區(qū)域。但是,有一些例外。例如,像素值47,680的大橙色部分將兩個區(qū)域融合在一起。這可以通過使用膨脹值來解決。要考慮的另一項內(nèi)容是,道路的擴張確實侵蝕了農(nóng)場的像素區(qū)域。為了獲得更準確的農(nóng)場價值,可能需要將這種侵蝕的結(jié)果添加到農(nóng)場的總面積中。感興趣的小伙伴可以自行實現(xiàn)。
接下倆給出另一個示例結(jié)果
來源:小白學(xué)視覺
審核編輯:湯梓紅
-
濾波器
+關(guān)注
關(guān)注
159文章
7657瀏覽量
177183 -
算法
+關(guān)注
關(guān)注
23文章
4575瀏覽量
92339 -
邊緣檢測
+關(guān)注
關(guān)注
0文章
92瀏覽量
18184
原文標題:利用邊緣檢測計算物體面積(內(nèi)含源碼)
文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論