ほぼ自動化されたプロセスで商品画像の照合とレタッチが可能になるツール

この作業を自動化するには

### 必要なもの

1. **Python**: スクリプト作成用

2. **OpenCV**: 画像処理用ライブラリ

3. **Pandas**: データ処理用ライブラリ

4. **Tesseract OCR**: 画像からテキストを抽出するためのOCRエンジン

5. **その他Pythonライブラリ**: os、shutilなど


### 自動化のステップ


1. **商品画像と商品リストの照合**

    - 商品リスト(CSV形式)を読み込み、商品名とJANコードを取得

    - 画像からテキストを抽出して商品名を特定(Tesseract OCRを使用)

    - 照合して一致する場合は画像ファイル名をJANコードに変更


2. **商品画像のレタッチ**

    - OpenCVを使用して背景を白抜きにし、明るさやコントラストを調整


### サンプルコード


```python

import os

import pandas as pd

import cv2

import pytesseract


# 商品リストを読み込み

df = pd.read_csv('product_list.csv') # 商品名とJANコードが含まれているCSVファイル


# OCR設定

pytesseract.pytesseract.tesseract_cmd = r'path_to_tesseract_executable' # Tesseractのインストールパスを指定


def match_product(image_path):

    img = cv2.imread(image_path)

    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

    text = pytesseract.image_to_string(gray, lang='jpn')

    

    for _, row in df.iterrows():

        product_name = row['Product_Name']

        if product_name in text:

            return row['JAN_Code']

    return None


def rename_and_edit_image(image_path, jan_code):

    img = cv2.imread(image_path)

    

    # 背景の白抜き処理

    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

    _, mask = cv2.threshold(gray, 240, 255, cv2.THRESH_BINARY_INV)

    result = cv2.bitwise_and(img, img, mask=mask)

    

    # 明るさとコントラストの調整

    alpha = 1.5 # コントラスト

    beta = 50 # 明るさ

    adjusted = cv2.convertScaleAbs(result, alpha=alpha, beta=beta)

    

    # 新しいファイル名を設定し保存

    new_image_path = f'output/{jan_code}.jpg'

    cv2.imwrite(new_image_path, adjusted)


def process_images(image_folder):

    for image_name in os.listdir(image_folder):

        image_path = os.path.join(image_folder, image_name)

        jan_code = match_product(image_path)

        

        if jan_code:

            rename_and_edit_image(image_path, jan_code)

            print(f'{image_name} -> {jan_code}.jpg')

        else:

            print(f'商品名が一致しない: {image_name}')


# 実行

image_folder = 'path_to_images'

process_images(image_folder)

ここから先は

465字

¥ 500

期間限定 PayPay支払いすると抽選でお得に!

この記事が気に入ったらサポートをしてみませんか?