2016-03-30 38 views
0

當研究文章的作者沒有提及/暗示他們如何處理鄰近圖像邊界的鄰域操作時,可以安全地假設什麼?什麼可以安全地假設邊界/邊界附近的鄰里操作?

我的問題看起來很天真,因爲在https://en.wikipedia.org/wiki/Neighborhood_operation上提到了一些選項。

我正在複製在期刊文章中報告的工作,其中current_point周圍的300x300鄰域用於計算。作者沒有提到他們如何處理邊界案件。

+0

通過電子郵件發送作者(s)並詢問。令人驚訝的是有多少次這樣做。 – Throwback1986

+1

有一些關於ImageMagick對待*「錯過的像素」*的各種方式的描述... http://www.imagemagick.org/script/command-line-options.php?#virtual-pixel –

回答

1

有一對夫婦的方式來處理邊界:

1)作物:剛剛擺脫像素。通常用軟件實現爲將這些外部值填充爲0。例如:

   00000 
123   
456 ----> 04560 
789    07890 
       00000 

2)延伸:簡單地將最近的邊緣像素「複製」到越界區域。例如,

   11233 
123    11233 
456 ----> 44566 
789    77899 
       77899 

或者,繼續走你的鄰居/內核需要。

3)裹:就像吃豆子一樣。例如:

   97897 
123    31231 
456 ----> 64564 
789    97897 
       31231 

在這種情況下,我任意選擇對角包裹(複製對角)。有些人喜歡插入角落。我認爲如果您計劃對數據進行傅立葉變換(或者如果它已經處於頻率空間,與任何類型的頻譜週期性包裝相同的想法),那麼這種類型的邊緣處理可能特別有用,但我並不確定,我從來沒有在實踐中使用過它。

4)反思:這是一種我從未用過的方法,但聽說過。 例如:

123    2112332 
456 ----> 5445665 
789    8778998 

我選擇不墊在頂部/底部有,因爲這將是冗長。

它也有一些欺騙做非對角線與這些方法中的一些。您可以根據需要擴展列以嘗試查找可能需要的對角線,或者插入以獲取值。

+0

欣賞您精心設計的答案。在你提到的選項中,哪一個是研究人員通過的標準? –

+0

@GShah這取決於具體問題。對於我所做的工作(雷達處理),我發現作物通常可以完成工作。實施起來也很簡單。作物永遠是第一次嘗試,如果不切斷它,做更多的事情。在我回答之前,我真的應該點擊你的鏈接,他們直接列出所有這些方法,只是叫不同的東西哈哈。對不起!我發誓我在回答哈哈之前沒有看它。你可以鏈接我的白皮書,或者更好的總結一下嗎?供參考:我要睡覺,直到明天才會回答。 – mwm314

+0

http://dx.doi.org/10.1109/TIP.2013.2257813將帶你到論文。 :) –

0

在邊緣點的情況下,它完全取決於您正在執行的操作。你需要看看你對圖像做了什麼樣的操作(特別是在邊緣/邊界處)。

最簡單的方法是使用零填充。

 00000 
123 =>
     00000 

我不知道你是如何實現它(MATLAB/OpenCV)? 以下鏈接可能有助於MATLAB的實施。 MATLAB Neighborhood Operations