最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python?實現(xiàn)圖像合成微縮效果

 更新時間:2023年03月02日 09:19:30   作者:AI technophile  
合成微縮是一個使真實大小物體照片看起來像微縮模型照片的過程,也稱為 Diorama Effect/Fillusion,照片的模糊部分模擬了通常在特寫攝影中通常遇到的近景深度,從而使場景看起來比實際場景小得多,這篇文章主要介紹了Python?合成微縮效果,需要的朋友可以參考下

合成微縮效果

前言

圖像中的模糊效果可以強烈影響被拍攝場景的感知,模糊在傳達所需的尺寸和距離感方面起著重要作用。合成微縮 (miniature faking) 是一個使真實大小物體照片看起來像微縮模型照片的過程,也稱為 Diorama Effect/Fillusion,照片的模糊部分模擬了通常在特寫攝影中通常遇到的近景深度,從而使場景看起來比實際場景小得多。

圖像微縮效果原理

應用模糊近似于淺的景深可以合成微縮效果。當圖像很大并從短距離觀看時,效果更為明顯。在本節(jié)中,我們將學習如何使用 PIL 庫在圖像中創(chuàng)建微縮效果。
使用掩碼可以選擇應重點關(guān)注的焦點對象,本節(jié)中我們使用的二值掩碼具有在對象交點處為黑色像素,而其他位置為白色像素。將高斯模糊應用到圖像上,然后使用掩碼從原始圖像或模糊圖像中選擇合適的像素。
為了模擬場景效應的深度,需要在圖像中多次應用高斯模糊,然后使用形態(tài)學運算腐蝕縮放的掩碼來重復高斯模糊過程,這將在模糊后的掩碼中產(chǎn)生線性梯度。同時,還需要增強圖像的顏色和亮度。

實現(xiàn)圖像微縮效果

(1) 首先,導入所有必需的庫:

from PIL import Image, ImageEnhance, ImageFilter
from scipy.ndimage import binary_erosion
from PIL.ImageFilter import GaussianBlur
import matplotlib.pyplot as plt, numpy as np

(2) 使用形態(tài)學腐蝕縮放后的掩碼圖像,然后通過使用給定半徑迭代應用高斯模糊 GaussianBlur()。每次重復應用掩碼都會對高斯模糊進行擴大,以確保梯度模糊,并增加模糊程度:

def apply_gradient_blur(image, mask, n=10, radius=1):
    mask = mask.convert("1")
    for i in range(n):
        mask = binary_erosion(np.array(mask), structure=np.ones((10,10)), border_value=1)
        im_blur = image.filter(GaussianBlur(radius=radius))
        image.paste(im_blur, mask=Image.fromarray(mask))
    return image

(3) 接下來,根據(jù)函數(shù) apply_gradient_blur() 定義函數(shù) create_fake_miniature() 創(chuàng)建合成微縮效果,在函數(shù)中,使用 pil.imageenhance 模塊的 Color()Contrast() 函數(shù)增強圖像的顏色和對比度,然后使用 apply_gradient_blur() 函數(shù)將梯度模糊應用于焦點外部的區(qū)域(即對應于掩碼中的白色像素);最后,將增強的圖像(焦點區(qū)域)與模糊圖像(焦點外部區(qū)域)合并:

def create_fake_miniature(im, custom_mask, color=1.9, contrast=1.4, blur_radius=1.3):
    # 提高對比度和顏色
    edited = ImageEnhance.Contrast(ImageEnhance.Color(im).enhance(color)).enhance(contrast)
    # 模糊圖像并合并
    im_blur = apply_gradient_blur(edited.copy(), mask.copy(), n=50, radius=blur_radius)
    edited = edited.convert("RGBA")
    edited.paste(im_blur, mask=mask)
    return edited

(4) 使用 pil image.open() 函數(shù)讀取輸入圖像和掩碼圖像(焦點區(qū)域)作為輸入創(chuàng)建合成微縮效果。繪制輸入圖像:

im = Image.open("9.png")
mask = Image.open("9_binary.png")
out = create_fake_miniature(im, mask)
plt.figure(figsize=(20,10))
plt.imshow(im), plt.axis('off'), plt.title('Original image', size=10)
plt.show()

(5) 繪制二值掩碼圖像:

plt.figure(figsize=(10,10))
plt.imshow(mask), plt.axis('off'), plt.title('(Bell Whistles) Mask image', size=10)
plt.show()

(6) 最后,繪制合成微縮效果輸出圖像如下:

plt.figure(figsize=(20,10))
plt.imshow(out), plt.axis('off'), plt.title('Fake Miniature image', size=10)
plt.show()

從上圖中可以看出,焦點中的建筑物似乎距離鏡頭更近了。

到此這篇關(guān)于Python 實現(xiàn)圖像合成微縮效果的文章就介紹到這了,更多相關(guān)Python 合成微縮效果內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

乌拉特后旗| 灵寿县| 博乐市| 沙雅县| 深泽县| 青神县| 那曲县| 灯塔市| 墨玉县| 彰化县| 高陵县| 平罗县| 江北区| 福安市| 永宁县| 龙泉市| 鹤庆县| 长岭县| 民乐县| 上栗县| 泾阳县| 温泉县| 吐鲁番市| 长岛县| 深泽县| 门源| 资溪县| 荥经县| 平塘县| 青河县| 邯郸市| 灵丘县| 车致| 许昌市| 云林县| 正蓝旗| 张北县| 扶余县| 甘泉县| 崇义县| 黑龙江省|