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