2014-02-27 207 views
2

我有一個圖像,我想創建一個平滑的邊界。這通常是在Photoshop中用圖像邊界附近的塗抹工具完成的,但我想通過代碼來完成。OpenCV如何平滑邊界

我想是這樣的:

What I want is this:

我的圖片背景是阿爾法。

我有兩個解決方案:

  1. 採取一切邊界像素區域和只有那些地區申請高斯模糊。我不知道如何只能提取邊界像素。

  2. 同樣,把所有的邊界像素和在每個像素應用阿爾法。例如,我在圖像周圍取10px邊界,然後每個像素應用10%增加的alpha,所以效果將爲10%alpha,20%.... 100%,然後是可見區域。

任何幫助表示讚賞。我試圖用OpenCV的

回答

1

你在找什麼叫做「反走樣」做iPhone上。一般來說,要做到這一點的方法是使用一些內置技術,例如渲染時間內的二次採樣(請參閱OpenCV文檔以進行抗鋸齒:http://docs.opencv.org/modules/core/doc/drawing_functions.html)。或者以更大比例(比如尺寸的4倍)呈現圖像,然後下采樣(縮小圖像)。

1

所有你需要的是簡單模糊(高斯或任何其他)。而且您不需要僅提取邊界像素,因爲平坦區域的平滑處理是相同的平坦區域,所以您只會看到邊界上的平滑。

+0

是的,我只想平滑邊界..! – user2899493

+2

正確的平滑只會影響邊界。這是基於內核處理的優勢(非常方便 - 波浪意義上的):它不會影響恆定值像素的大連接場。 所以卷積用一維水平高斯核,然後用一維垂直高斯核,和你去那裏。您可以儘可能快地編寫代碼,因爲您可以編寫答覆。 – Rethunk