ほぼ自動化されたプロセスで商品画像の照合とレタッチが可能になるツール
この作業を自動化するには
### 必要なもの
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)
ここから先は
¥ 500
Amazonギフトカード5,000円分が当たる
この記事が気に入ったらチップで応援してみませんか?