欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

前言

老照片上色其實很早之前就想寫了,也有不少人問了我這個項目。

最近把DeOldify項目好好弄了弄。

項目地址:DeOldify項目地址

先看看項目給出的圖片對比效果。

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

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

安裝

看一下項目的README中關于安裝的部分。

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

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

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

三個模型如果比較難下載,可以從我的網盤下載,地址如下。

鏈接 提取碼:kr3c 

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

代碼改造使用

作者在README中給出了docker快速啟動以及api啟動方式。有點麻煩,還是自己改一下。

先看一下app.py代碼內容。

@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
            ])

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

代碼如下:

#!/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")

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

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

看一下我準備的需要上色的照片。

選擇Artistic模型的效果如下:

選擇Stable模型的效果如下:

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

注意

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

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的時候會安裝Pillow最新版本,可能會導致執(zhí)行錯誤,補充卸載安裝Pillow如下:

pip uninstall Pillow
pip install Pillow==6.2.2 

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

相關文章

  • Python變量賦值的秘密分享

    Python變量賦值的秘密分享

    在Python中,我們令一個變量等于另外一個變量時,并不是把值傳遞給它,而是直接把指向的地址更改了,我們通過一個小例子來看看這個有趣的過程,需要的朋友可以參考下
    2018-04-04
  • python列表操作實例

    python列表操作實例

    這篇文章主要介紹了python列表操作方法,實例分析了Python針對列表操作的插入、刪除等各種操作技巧,需要的朋友可以參考下
    2015-01-01
  • python數(shù)據(jù)分析之將爬取的數(shù)據(jù)保存為csv格式

    python數(shù)據(jù)分析之將爬取的數(shù)據(jù)保存為csv格式

    Python內置了CSV模塊,可直接通過該模塊實現(xiàn)csv文件的讀寫操作,在web應用中導出數(shù)據(jù)是比較常見操作,下面這篇文章主要給大家介紹了關于python數(shù)據(jù)分析之將爬取的數(shù)據(jù)保存為csv格式的相關資料,需要的朋友可以參考下
    2022-06-06
  • 安裝python依賴包psycopg2來調用postgresql的操作

    安裝python依賴包psycopg2來調用postgresql的操作

    這篇文章主要介紹了安裝python依賴包psycopg2來調用postgresql的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • 超詳細注釋之OpenCV操作圖像平移轉換

    超詳細注釋之OpenCV操作圖像平移轉換

    這篇文章主要介紹了OpenCV操作圖像平移轉換,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • 使用PyOpenGL繪制三維坐標系實例

    使用PyOpenGL繪制三維坐標系實例

    今天小編就為大家分享一篇使用PyOpenGL繪制三維坐標系實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • Python編寫漏洞驗證腳本批量測試繁瑣漏洞

    Python編寫漏洞驗證腳本批量測試繁瑣漏洞

    這篇文章主要為大家介紹了Python編寫漏洞驗證腳本來批量測試繁瑣的漏洞實現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2022-02-02
  • Python設計密碼強度校驗程序

    Python設計密碼強度校驗程序

    這篇文章主要介紹了Python如何設計密碼強度校驗程序,文中講解非常細致,代碼幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-07-07
  • Python使用matplotlib繪制三維圖形示例

    Python使用matplotlib繪制三維圖形示例

    這篇文章主要介紹了Python使用matplotlib繪制三維圖形,結合實例形式分析了Python基于matplotlib庫繪制三維圖形的相關操作技巧與注意事項,需要的朋友可以參考下
    2018-08-08
  • 對python append 與淺拷貝的實例講解

    對python append 與淺拷貝的實例講解

    今天小編就為大家分享一篇對python append 與淺拷貝的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05

最新評論