當研究文章的作者沒有提及/暗示他們如何處理鄰近圖像邊界的鄰域操作時,可以安全地假設什麼?什麼可以安全地假設邊界/邊界附近的鄰里操作?
我的問題看起來很天真,因爲在https://en.wikipedia.org/wiki/Neighborhood_operation上提到了一些選項。
我正在複製在期刊文章中報告的工作,其中current_point周圍的300x300鄰域用於計算。作者沒有提到他們如何處理邊界案件。
當研究文章的作者沒有提及/暗示他們如何處理鄰近圖像邊界的鄰域操作時,可以安全地假設什麼?什麼可以安全地假設邊界/邊界附近的鄰里操作?
我的問題看起來很天真,因爲在https://en.wikipedia.org/wiki/Neighborhood_operation上提到了一些選項。
我正在複製在期刊文章中報告的工作,其中current_point周圍的300x300鄰域用於計算。作者沒有提到他們如何處理邊界案件。
有一對夫婦的方式來處理邊界:
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
我選擇不墊在頂部/底部有,因爲這將是冗長。
它也有一些欺騙做非對角線與這些方法中的一些。您可以根據需要擴展列以嘗試查找可能需要的對角線,或者插入以獲取值。
欣賞您精心設計的答案。在你提到的選項中,哪一個是研究人員通過的標準? –
@GShah這取決於具體問題。對於我所做的工作(雷達處理),我發現作物通常可以完成工作。實施起來也很簡單。作物永遠是第一次嘗試,如果不切斷它,做更多的事情。在我回答之前,我真的應該點擊你的鏈接,他們直接列出所有這些方法,只是叫不同的東西哈哈。對不起!我發誓我在回答哈哈之前沒有看它。你可以鏈接我的白皮書,或者更好的總結一下嗎?供參考:我要睡覺,直到明天才會回答。 – mwm314
http://dx.doi.org/10.1109/TIP.2013.2257813將帶你到論文。 :) –
在邊緣點的情況下,它完全取決於您正在執行的操作。你需要看看你對圖像做了什麼樣的操作(特別是在邊緣/邊界處)。
最簡單的方法是使用零填充。
00000
123 =>
00000
我不知道你是如何實現它(MATLAB/OpenCV)? 以下鏈接可能有助於MATLAB的實施。 MATLAB Neighborhood Operations
通過電子郵件發送作者(s)並詢問。令人驚訝的是有多少次這樣做。 – Throwback1986
有一些關於ImageMagick對待*「錯過的像素」*的各種方式的描述... http://www.imagemagick.org/script/command-line-options.php?#virtual-pixel –