2015-11-09 55 views
0

以下是我正在嘗試的操作:使用Python在圖像中創建「聚光燈」

我有一個圖像。

我想在圖像中取一個圓形區域,並使其顯示爲正常。

圖像的其餘部分應該顯得較暗。

這樣,就好像圓形區域被「突出顯示」一樣。

我非常感謝有關如何在Python中完成的反饋。

手動,在GIMP中,我會創建一個灰色(小於中等灰度)的新圖層。然後,我會在該圖層上創建一個圈子區域,並將其設置爲中間灰色。然後,我會將混合模式更改爲柔和光線。本質上,頂層中間灰色的任何東西都會顯示出來,而不會有任何修改,而且比中間灰色暗的東西會顯得更暗。

(理想情況下,我也模糊了頂層,以便過渡不突然)。

我該如何在Python中進行算法操作?我考慮過使用Pillow庫,但它沒有這些混合模式。我也考慮過使用Blit庫,但我無法導入(不確定它是否保留)。我也開放scikit形象。我只需要關於庫和一些相關函數的指針。

如果沒有合適的庫,我可以從Python代碼中調用命令行工具(例如imagemagick)。

謝謝!

+0

你需要玩alpha通道。這可以用PIL完成。我會盡力爲你安排一些東西 – inspectorG4dget

回答

0

我最後用ImageMagick的做到了,使用Python計算各種座標等

該命令將產生所需的圓(半徑400,(600,600)爲中心:

convert -size 1024x1024 xc:none -stroke black -fill steelblue -strokewidth 1 -draw "translate 600,600 circle 0,0 400,0" drawn.png

此命令將然後將其轉換到B/W得到一個基本的面具:

convert drawn.png -alpha extract mask.png

此命令將模糊掩模(半徑180,Σ-16):

convert -channel RGBA -blur 100x16 mask.png mask2.png

上面三個命令給我我所需要的掩模。

此命令會變暗整幅圖像(無掩模):在

convert image.jpg -level 0%,130%,0.7 dark.jpg

而這個命令會把所有3張圖片一起(原始圖像,變暗圖像和麪罩):

composite image.jpg dark.jpg mask2.png out.jpg