1. 写真をアップロードし、背景を削除してダウンロードします。オンラインマットソフト_写真背景除去 | Remove.bg – Remove.bg
2. ダウンロードした画像を2倍に拡大します。ClipDrop - 画像アップスケーラー
3. ダウンロードした写真を拡大して編集します。
4. deepfacelive を使用して顔を変更します。
1) 手順 3 の写真を指定したフォルダーにコピーします。C:\myApp\deepfakelivetemp\DeepFaceLive_NVIDIA\userdata\animatables
2) Deepfacelive ソフトウェアを次のように設定します。
3) 自動生成された jpg ファイルをビデオ ファイルに変換する Python プログラムを作成します。
a) cv2 モジュールをインストールします。
pip install opencv-python
b) ソースコードの記述:
import os
import wx
import cv2
class MyFrame(wx.Frame):
def __init__(self, parent, title):
super(MyFrame, self).__init__(parent, title=title, size=(300, 200))
panel = wx.Panel(self)
vbox = wx.BoxSizer(wx.VERTICAL)
self.btn = wx.Button(panel, label='选择文件夹')
self.btn.Bind(wx.EVT_BUTTON, self.onOpenFolder)
vbox.Add(self.btn, flag=wx.ALIGN_CENTER|wx.TOP|wx.BOTTOM, border=20)
panel.SetSizer(vbox)
self.Show(True)
def onOpenFolder(self, event):
dlg = wx.DirDialog(self, '选择文件夹', style=wx.DD_DEFAULT_STYLE)
if dlg.ShowModal() == wx.ID_OK:
folder_path = dlg.GetPath()
print('您选择的文件夹是:{}'.format(folder_path))
self.createVideo(folder_path)
dlg.Destroy()
def createVideo(self, folder_path):
# 获取文件夹中的所有JPG序列文件
file_list = os.listdir(folder_path)
file_list.sort()
jpg_list = [os.path.join(folder_path, f) for f in file_list if f.endswith('.jpg')]
# 读取第一张JPG文件获取视频尺寸
img = cv2.imread(jpg_list[0])
height, width, _ = img.shape
# 初始化视频写入器
video_path = os.path.join(folder_path, 'output.mp4')
fourcc = cv2.VideoWriter_fourcc(*'mp4v')
out = cv2.VideoWriter(video_path, fourcc, 30, (width, height))
# 逐帧读取JPG文件并写入视频
for jpg_file in jpg_list:
img = cv2.imread(jpg_file)
out.write(img)
out.release()
print('视频文件已生成:{}'.format(video_path))
if __name__ == '__main__':
app = wx.App()
frame = MyFrame(None, 'JPG序列文件合成视频')
app.MainLoop()
c) コードの説明:
以下は、「Python を使用して wxPython モジュールを作成する: フォルダーを選択し、001.jpg から 304.jpg までの JPG シーケンス ファイルをビデオ ファイルに結合する」の Python コードの説明です。
まず、os、wx、cv2 モジュールなどの必要なモジュールをインポートしました。os モジュールはファイルとフォルダーの処理に使用され、wx モジュールは GUI アプリケーションの作成に使用され、cv2 モジュールは画像ファイルとビデオ ファイルの読み取りと書き込みに使用されます。
ここでは、「MyFrame」という wxPython フレーム クラスを定義し、その中に 2 つのメソッド __init__ と onOpenFolder を実装します。__init__ メソッドは GUI フレームとボタンの初期化に使用され、onOpenFolder メソッドはフォルダー選択ボタンがクリックされたイベントの処理に使用されます。JPG シーケンス ファイルをビデオ ファイルに結合するための「createVideo」と呼ばれるメソッドも定義します。
最後に、メイン プログラムで wxPython アプリケーションのインスタンスを作成し、「MyFrame」という名前のフレームのインスタンスを作成します。ユーザーがウィンドウを閉じるまでアプリケーションが実行できるように、アプリケーションのメイン ループを最後の行に配置します。
要約すると、この Python プログラムは、wxPython モジュールを使用して、ユーザーが JPG シーケンス ファイルを含むフォルダーを選択し、それらを 1 つのビデオ ファイルに結合できるようにする GUI アプリケーションを作成します。OpenCV ライブラリを使用して、画像ファイルとビデオ ファイルの読み取りと書き込みを行います。
d) 結果: