LoginSignup
6
5

More than 5 years have passed since last update.

OpenCV3系を利用して陥ったエラー。 備忘録

Last updated at Posted at 2018-10-30

単純なエラーから、複雑なエラーまでを載せていきます。

ValueError: too many values to unpack (expected 2)

このエラーは変数が大きすぎるよ(予想されるのは2です)というエラーです。

example01.py
#修正前
x , y, w =  1 ,2 ,3,0
#修正後
x , y, w =  1 ,2 ,3.0       

error: (-215:Assertion failed) ngroups > 0 && inpCn % ngroups == 0 && outCn % ngroups == 0 in function 'cv::dnn::ConvolutionLayerImpl::getMemoryShapes'

OpenCVのdnn MobileNetSSDをいじっていたときに起きたエラーです。

example02.py
blob = cv2.dnn.blobFromImage(cv2.resize(frame, \
               (300, 300)), 0.007843, (300, 300), 127.5)

上記のframe変数のカラーコードをgrayscaleにしてあげれば直ります。
*直らないときもある。日本語の記事が少なく諦めた

example03.py
frame = cv2.imread(args["image"], cv2.IMREAD_GRAYSCALE)
#または
frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

error: (-215:Assertion failed) npoints >= 0 && (depth == CV_32F || depth == CV_32S) in function 'cv::contourArea'

cv2.findCountContoursを利用しているときに起きたエラーです。
openCV3になり、この関数の返り値は3つになりました。
関係ないですがcontoursのtypeはnumpy.ndarrayです。
findContours関数を使うときは「このサイト」がとても丁寧でわかりやすいです。

example04.py
#修正前
contours, hierarchy = cv2.findContours(im_bw.copy(),\
             cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) 
#修正後
image, contours, hierarchy = cv2.findContours(im_bw.copy(),\
            cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)    
6
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
5