Pythonで下記のOpencvのプログラムを書いたところ
# -*- coding: utf-8 -*-
import cv2
import numpy as np
th = 100
# 背景, 入力画像の取得
im_bg = cv2.imread('kyousitu2.jpeg')
im_in = cv2.imread('kyousitu1.jpeg')
# 差分計算
diff = cv2.absdiff(im_in,im_bg)
# 差分が閾値より小さければTrue
mask = diff < th
# 配列(画像)の高さ・幅
hight = im_bg.shape[0]
width = im_bg.shape[1]
#resize_img = cv2.resize(img_dst,(hight/2,width/2))
# 背景画像と同じサイズの配列生成
im_mask = np.zeros((hight,width),np.uint8)
# Trueの部分(背景)は白塗り
im_mask[mask] = 255
# ゴマ塩ノイズ除去
im_mask = cv2.medianBlur(im_mask,blur)
# エッジ検出
im_edge = cv2.Canny(im_mask,100,200)
cv2.imshow("detected2.jpg", im_mask)
下記のようなエラーが出ました。
Traceback (most recent call last):
File "sabun7.py", line 22, in <module>
im_mask[mask] = 255
IndexError: too many indices for array
これはどういう意味なのでしょうか。またどうすれば直るのでしょうか。