2017-11-12 6 views
0

長方形のオブジェクトをその色で見つけようとしていて、オブジェクトの中心の座標、newbie - opencv pythonでオブジェクトのトラッキング/ロケートを試みていますが、findContoursの問題

色を分離してマスクを作成するのに成功しましたが、findContours関数が機能していないため、findContoursに適切なバイモーダル画像を提供できなかったと思います。

%matplotlib inline 
import matplotlib.image as mpimg 
from matplotlib import pyplot as plt 
import cv2 
import numpy as np 

red_image = mpimg.imread('/vagrant/notebooks/red_thing.jpg') 
hsv = cv2.cvtColor(red_image, cv2.COLOR_BGR2HSV) 
lower_red = np.array([30,150,50]) 
upper_red = np.array([255,255,180]) 
mask = cv2.inRange(hsv, lower_red, upper_red) 
res = cv2.bitwise_and(red_image,red_image, mask= mask) 
kernel = np.ones((20,20),np.uint8) 
ret,thresh1 = cv2.threshold(res,60,255,cv2.THRESH_BINARY) 
# perform 'open' operation to homogenize object 
opened = cv2.morphologyEx(thresh1, cv2.MORPH_OPEN, kernel) 
image, contours, hierarchy = cv2.findContours(opened,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE) 

最後の行には、次のエラーが発生し、私はこれを解決する方法を見つけ出すことはできません。

--------------------------------------------------------------------------- 
error          Traceback (most recent call last) 
<ipython-input-130-06cc5691b64a> in <module>() 
----> 1 image, contours, hierarchy = cv2.findContours(opened,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE) 

error: /home/vagrant/opencv/modules/imgproc/src/contours.cpp:199: error: (-210) [Start]FindContours supports only CV_8UC1 images when mode != CV_RETR_FLOODFILL otherwise supports CV_32SC1 images only in function cvStartFindContours_Impl 

答えて

0

私はこのように、グレーに変換してエラーを修正することができた:灰色= cv2.cvtColor(RES、cv2.COLOR_BGR2GRAY)

関連する問題