前提・実現したいこと
python3.6、Open CVで、フォルダ内の画像を一括処理(色の分離)するプログラムを作っています。
実装中に以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
エラーメッセージ TypeError Traceback (most recent call last) <ipython-input-4-7db418f441b5> in <module> 40 41 # 色検出(緑) ---> 42 green_mask = detect_green_color(img) <ipython-input-4-7db418f441b5> in detect_green_color(img) 25 26 # HSV色空間に変換 ---> 27 hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV) 28 29 # 緑色のHSVの値域 TypeError: src is not a numpy array, neither a scalar
該当のソースコード
import glob
import os
import cv2
import numpy as np
from PIL import Image
img_dir = 'input' # 入力ディレクトリ
out_dir = 'output' # 出力ディレクトリ
指定したフォルダの画像ファイルの一覧を取得する
types = ['.png', '.jpg', '.jpeg', '.bmp']
paths = []
for t in types:
paths.extend(glob.glob(os.path.join(img_dir, t)))
os.makedirs(out_dir, exist_ok=True)
for p in paths:
img = Image.open(p) # 読み込む
def detect_green_color(img):
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV) hsv_min = np.array([30, 59, 0]) hsv_max = np.array([90,255,255]) mask = cv2.inRange(hsv, hsv_min, hsv_max) masked_img = cv2.bitwise_and(img, img, mask=mask) return mask
green_mask = detect_green_color(img)
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。