Python Program Introduction Site

anaconda-navigator

・過去の白黒画像や白黒動画(モノクロ動画)をカラー化したいと思ったことはありませんか?

・しかもそれがPhotoshopなどの高いソフトの購入=要らない
 画像処理のスペシャリストになる何か月~何年もの修行=要らない
 としたら・・・。

・そこにあるボタン一つをポンと押す
 =コマンドのエンターボタンを押すだけで
 あとはただ待つだけ

 PCが勝手にやってくれる
 のだとしたら・・・。

・ここでは、そういった方法を紹介します

ここでの目的は自力で私と同じように白黒動画をカラー化できるまでサポートすることにあります。
順を追って説明していきますので、躓いたりした際は分かる範囲でサポートさせていただきます。
出来るだけ5W1Hでの質問をお願いします。

コマンドプロンプトと同じことですが
Anaconda Navigatorを紹介いたします。
もっと便利な使い方があると思うのですが

ここでは基本的な使い方をお伝えしたいと思います。

① スタートメニューから「Anaconda3(64-bit)」を選択

②Anaconda Navigator(Anaconda3)選択

仮想環境の設定は後程説明しますが
ここでは、取り敢えず「base」での説明を致します。

③Environments ⇒ base(root)と選択

④「Open Terminal」を選択

コマンドプロンプトが立ち上がる。

ここでは例としてTensorflowのアップデートを行います。

yesかnoを聞かれたら「y」と入力後「Enter」キーを押す

アップデート完了

⑤コマンド「conda install pathlib」入力が「Enter」キーを押す

⑥Proceed ([y]/n)?は「y」を入力後「Enter」キーを押す

基本「conda」コマンドでインストールできない場合は「pip」でインストールしてください。

「pip install Pillow」

「conda install -c conda-forge opencv」

「pip install requests」

これで準備が整いました。

あとはコードを実行するだけです。

途中でエラーが出た際はメール頂ければわかる範囲でサポートいたします。

コード


# coding: utf-8
from pathlib import Path
from PIL import Image, ImageSequence
import cv2
import glob
import requests

# モノクロmp4へのパス
IMAGE_MONO_PATH = ‘roma3.mp4’
# 生成されるカラーmp4へのパス
IMAGE_COLOR_PATH = ‘roma01.mp4’
outname = ‘roma’
# 分割したモノクロ画像生成フォルダ
DESTINATION_MONO = ‘splitted_mono’
# 分割したカラー画像生成フォルダ
DESTINATION_COLOR = ‘splitted_color’

captureimg = cv2.VideoCapture(IMAGE_MONO_PATH)
fps = captureimg.get(cv2.CAP_PROP_FPS)  # 元動画のフレームレート(音と同期させる時に必須)

DURATION = round(1000/fps) # デフォルトでは30fps(29.97fps)

cnt = 0
while True:
ret, frame = captureimg.read()
if ret == True:

# splitted_monoフォルダーの中に指定した名前を先頭に,
# 5桁のフレーム番号を入れて,PNG形式で保存

        cv2.imwrite(‘./splitted_mono/’+outname+‘_’+str(“{0:05d}”.format(cnt)) +‘.png’, frame)
cnt += 1
else:
break

def get_color(mono_destination, color_destination):
dir_dest = Path(color_destination)
if not dir_dest.is_dir():
dir_dest.mkdir(0o700)
print(‘Destionation directory is created: “{}”.’.format(color_destination))

files = sorted(glob.glob(mono_destination + ‘/*.png’))
cnt1 = 0
for i, file in enumerate(files):
r = requests.post(
“https://api.deepai.org/api/colorizer”,
files={
‘image’: open(file, ‘rb’),
},
headers={‘api-key’: ‘5226b592-9551-4b29-a0ad-9a675531df0a’}
)
url = r.json()[‘output_url’]
file_name = color_destination + ‘/’ + outname +str(“{0:05d}”.format(i)) + “.png”

        response = requests.get(url)
image = response.content

with open(file_name, “wb”) as f:
f.write(image)
cnt1 += 1

def main():
get_color(DESTINATION_MONO, DESTINATION_COLOR)
join_images(DESTINATION_COLOR, IMAGE_COLOR_PATH, DURATION)

def join_images(color_destination, color_filename, duration):
jpg_files = sorted(glob.glob(color_destination + ‘/*.png’))
fourcc = cv2.VideoWriter_fourcc(‘m’,’p’,’4′, ‘v’) # 取り敢えずmp4コンテナならOKか?

    # 幅 w と高さ h が異なるとエラーになるので注意
    video  = cv2.VideoWriter(‘roma01.mp4′, fourcc, fps, (1280, 720)) # w と h の指定が向こう任せ

    for jpg_file in jpg_files:
img = cv2.imread(jpg_file)
video.write(img)

video.release()

if __name__ == ‘__main__’:
main()

関連記事

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

python3X