MakiAi commited on
Commit
6e1b8f2
·
1 Parent(s): b5b8e49

✨ feat: コマンドラインインターフェース(CLI)の実装

Browse files

- コマンドラインインターフェース(CLI)を実装しました。これにより、ユーザーはコマンドラインから画像処理を実行できます。
- `argparse`モジュールを使用してコマンドライン引数を解析します。
- 入力画像、マスク画像、出力画像のパスを受け取ります。
- `core.py`の`process_header_image`関数を使用して画像処理を行い、結果を出力します。
- ログ出力に`loguru`を使用し、エラー処理を強化しました。
- 入力ファイルの存在チェックを追加し、エラーメッセージを改善しました。

Files changed (1) hide show
  1. pic_to_header/cli.py +35 -0
pic_to_header/cli.py ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import argparse
2
+ import os
3
+ import sys
4
+ from loguru import logger
5
+ from .core import process_header_image
6
+
7
+ def main():
8
+ # スクリプトのディレクトリをパスに追加
9
+ script_dir = os.path.dirname(os.path.abspath(__file__))
10
+ sys.path.append(script_dir)
11
+
12
+ parser = argparse.ArgumentParser(description='画像にマスクを適用してヘッダー画像を生成します。')
13
+ parser.add_argument('input_image', help='入力画像のパス')
14
+ parser.add_argument('mask_image', help='マスク画像のパス')
15
+ parser.add_argument('output_image', help='出力画像のパス')
16
+ args = parser.parse_args()
17
+
18
+ # 入力ファイルパスを絶対パスに変換
19
+ input_image = os.path.abspath(args.input_image)
20
+ mask_image = os.path.abspath(args.mask_image)
21
+ output_image = os.path.abspath(args.output_image)
22
+
23
+ if not os.path.exists(input_image):
24
+ logger.error(f"エラー: 入力画像が見つかりません: {input_image}")
25
+ elif not os.path.exists(mask_image):
26
+ logger.error(f"エラー: マスク画像が見つかりません: {mask_image}")
27
+ else:
28
+ try:
29
+ result = process_header_image(input_image, mask_image, output_image)
30
+ logger.success(f"処理が成功しました。結果: {result}")
31
+ except Exception as e:
32
+ logger.exception(f"エラーが発生しました: {str(e)}")
33
+
34
+ if __name__ == "__main__":
35
+ main()