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

Python+DeOldify實(shí)現(xiàn)老照片上色功能

 更新時(shí)間:2022年06月21日 08:51:50   作者:劍客阿良_ALiang  
DeOldify是一種技術(shù),以彩色和恢復(fù)舊的黑白圖像,甚至電影片段。它是由一個(gè)叫Jason?Antic的人開發(fā)和更新的。本文將利用DeOldify實(shí)現(xiàn)老照片上色功能,感興趣的可以了解一下

前言

老照片上色其實(shí)很早之前就想寫了,也有不少人問了我這個(gè)項(xiàng)目。

最近把DeOldify項(xiàng)目好好弄了弄。

項(xiàng)目地址:DeOldify項(xiàng)目地址

先看看項(xiàng)目給出的圖片對(duì)比效果。

從給出的效果可以看出,上色后的圖片對(duì)人物、景色、物品、環(huán)境等等都變得很生動(dòng)。

下面來安裝一下項(xiàng)目執(zhí)行環(huán)境,測(cè)試一下自己的圖片。

安裝

看一下項(xiàng)目的README中關(guān)于安裝的部分。

使用anaconda安裝環(huán)境。安裝完成后看一下模型文件需要下載哪些。

仔細(xì)看看,文章給出了不同模型的區(qū)別。

從作者的描述中,可以看出前面2個(gè)主要是針對(duì)圖像的模型,一個(gè)藝術(shù)一個(gè)穩(wěn)定,等下使用的時(shí)候看看區(qū)別。

三個(gè)模型如果比較難下載,可以從我的網(wǎng)盤下載,地址如下。

鏈接 提取碼:kr3c 

下載的3個(gè)模型文件放到項(xiàng)目根目錄下models文件夾內(nèi),沒有就創(chuàng)建models。

代碼改造使用

作者在README中給出了docker快速啟動(dòng)以及api啟動(dòng)方式。有點(diǎn)麻煩,還是自己改一下。

先看一下app.py代碼內(nèi)容。

@app.route("/process", methods=["POST"])
def process_image():
 
    input_path = generate_random_filename(upload_directory,"jpeg")
    output_path = os.path.join(results_img_directory, os.path.basename(input_path))
 
    try:
        if 'file' in request.files:
            file = request.files['file']
            if allowed_file(file.filename):
                file.save(input_path)
            try:
                render_factor = request.form.getlist('render_factor')[0]
            except:
                render_factor = 30
            
        else:
            url = request.json["url"]
            download(url, input_path)
 
            try:
                render_factor = request.json["render_factor"]
            except:
                render_factor = 30
 
        result = None
 
        try:
            result = image_colorizer.get_transformed_image(input_path, render_factor=render_factor, post_process=True, watermarked=True)
        except:
            convertToJPG(input_path)
            result = image_colorizer.get_transformed_image(input_path, render_factor=render_factor, post_process=True, watermarked=True)
        finally:
            if result is not None:
                result.save(output_path, quality=95)
                result.close()
 
        callback = send_file(output_path, mimetype='image/jpeg')
        return callback, 200
 
    except:
        traceback.print_exc()
        return {'message': 'input error'}, 400
 
    finally:
        pass
        clean_all([
            input_path,
            output_path
            ])

可以看出該P(yáng)OST接口主要操作分為:獲取文件流、根據(jù)參數(shù)調(diào)整渲染因子(默認(rèn)為30)、通過image_colorizer對(duì)象進(jìn)行染色操作、最終將文件流返回。按照這個(gè)方法我改造了一個(gè)直接使用的工具方法。

代碼如下:

#!/user/bin/env python
# coding=utf-8
"""
@project : DeOldify
@author  : 劍客阿良_ALiang
@file   : test1.py
@ide    : PyCharm
@time   : 2022-06-17 16:37:13
"""
import os
from pathlib import Path
 
from app_utils import convertToJPG
from deoldify.visualize import ModelImageVisualizer, get_image_colorizer
 
 
def colorizer(input_path, output_dir):
    _output_path = os.path.join(output_dir, os.path.basename(input_path))
    _image_colorizer = get_image_colorizer(artistic=True)
    try:
        result = _image_colorizer.get_transformed_image(input_path, render_factor=30, post_process=True,
                                                        watermarked=True)
    except:
        convertToJPG(input_path)
        result = _image_colorizer.get_transformed_image(input_path, render_factor=30, post_process=True,
                                                        watermarked=True)
    finally:
        if result is not None:
            result.save(_output_path, quality=95)
            result.close()
 
 
if __name__ == '__main__':
    colorizer("./data/image/xxx1.jpg", "./data/result1")

一些異常情況我就不處理,如果需要的話,使用的時(shí)候加一些補(bǔ)充代碼即可。

artistic參數(shù)作為是否使用藝術(shù)模型的bool參數(shù)。

看一下我準(zhǔn)備的需要上色的照片。

選擇Artistic模型的效果如下:

選擇Stable模型的效果如下:

還是可以看出一些區(qū)別的,只是本人沒啥藝術(shù)細(xì)菌,看不大出來怎么個(gè)藝術(shù)法。

注意

1、 上面的工具代碼由于引入了項(xiàng)目中的幾個(gè)方法,可能存在引入包缺失問題。補(bǔ)充安裝如下:

pip install opencv-python -i https://pypi.douban.com/simple
pip install scikit-image -i https://pypi.douban.com/simple
pip install ffmpeg -i https://pypi.douban.com/simple

2、安裝scikit-image的時(shí)候會(huì)安裝Pillow最新版本,可能會(huì)導(dǎo)致執(zhí)行錯(cuò)誤,補(bǔ)充卸載安裝Pillow如下:

pip uninstall Pillow
pip install Pillow==6.2.2 

以上就是Python+DeOldify實(shí)現(xiàn)老照片上色功能的詳細(xì)內(nèi)容,更多關(guān)于Python DeOldify老照片上色的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python?asyncio的一個(gè)坑

    Python?asyncio的一個(gè)坑

    這篇文章主要介紹了Python?asyncio的一個(gè)坑,文章從Python編程錯(cuò)誤開始介紹,改變與好多變不成中常犯的錯(cuò)誤,我們今天就來分析分析吧,需要的下伙伴也可以參考一下
    2021-12-12
  • python實(shí)現(xiàn)手勢(shì)識(shí)別的示例(入門)

    python實(shí)現(xiàn)手勢(shì)識(shí)別的示例(入門)

    這篇文章主要介紹了python實(shí)現(xiàn)手勢(shì)識(shí)別的示例(入門),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • Python中如何實(shí)現(xiàn)真正的按位取反運(yùn)算

    Python中如何實(shí)現(xiàn)真正的按位取反運(yùn)算

    按位取反是位運(yùn)算符,而位運(yùn)算符是應(yīng)用在兩個(gè)數(shù)的運(yùn)算上,會(huì)對(duì)數(shù)字的二進(jìn)制所有位數(shù)進(jìn)行從低到高的運(yùn)算,下面這篇文章主要給大家介紹了關(guān)于Python中如何實(shí)現(xiàn)真正的按位取反運(yùn)算的相關(guān)資料,需要的朋友可以參考下
    2023-02-02
  • Python實(shí)現(xiàn)將照片變成卡通圖片的方法【基于opencv】

    Python實(shí)現(xiàn)將照片變成卡通圖片的方法【基于opencv】

    這篇文章主要介紹了Python實(shí)現(xiàn)將照片變成卡通圖片的方法,涉及Python基于opencv庫(kù)進(jìn)行圖片處理的相關(guān)操作技巧,需要的朋友可以參考下
    2018-01-01
  • 樹莓派使用USB攝像頭和motion實(shí)現(xiàn)監(jiān)控

    樹莓派使用USB攝像頭和motion實(shí)現(xiàn)監(jiān)控

    這篇文章主要為大家詳細(xì)介紹了樹莓派使用USB攝像頭和motion實(shí)現(xiàn)監(jiān)控,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • numpy使用fromstring創(chuàng)建矩陣的實(shí)例

    numpy使用fromstring創(chuàng)建矩陣的實(shí)例

    今天小編就為大家分享一篇numpy使用fromstring創(chuàng)建矩陣的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • Python中對(duì)象迭代與反迭代的技巧總結(jié)

    Python中對(duì)象迭代與反迭代的技巧總結(jié)

    這篇文章將通過實(shí)例給大家分享Python中對(duì)象迭代與反迭代的技巧,對(duì)大家學(xué)習(xí)或者使用python具有一定的參考借鑒價(jià)值。有需要的下面來一起看看吧。
    2016-09-09
  • python如何設(shè)置靜態(tài)變量

    python如何設(shè)置靜態(tài)變量

    在本篇內(nèi)容里小編給大家整理的是一篇關(guān)于python如何設(shè)置靜態(tài)變量的相關(guān)文章,有興趣的朋友們可以參考下。
    2020-09-09
  • 如何在Python中編寫接口和請(qǐng)求外部接口

    如何在Python中編寫接口和請(qǐng)求外部接口

    這篇文章主要介紹了如何在Python中編寫接口和請(qǐng)求外部接口,requests庫(kù)來請(qǐng)求外部接口,按照請(qǐng)求方法分為get請(qǐng)求和post請(qǐng)求,下面和小編一起進(jìn)入文章了解更多的具體內(nèi)容吧
    2022-02-02
  • python對(duì)視頻畫框標(biāo)記后保存的方法

    python對(duì)視頻畫框標(biāo)記后保存的方法

    今天小編就為大家分享一篇python對(duì)視頻畫框標(biāo)記后保存的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12

最新評(píng)論

合肥市| 房山区| 溆浦县| 汉中市| 蚌埠市| 澳门| 鄯善县| 海兴县| 革吉县| 平阴县| 晋城| 新兴县| 岳池县| 华安县| 油尖旺区| 平安县| 渭南市| 虹口区| 山阴县| 仲巴县| 宁阳县| 沙田区| 中江县| 晋中市| 西充县| 姜堰市| 昭平县| 天祝| 东乡县| 纳雍县| 四子王旗| 增城市| 陵水| 北宁市| 南雄市| 石屏县| 正蓝旗| 保康县| 上犹县| 安乡县| 英山县|