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