1. ホーム
  2. python

[解決済み] OpenCV python: ValueError: 値が多すぎて解凍できない

2023-06-16 05:53:29

質問

opencvのプログラムを書いているのですが、他のstackoverflowの質問でスクリプトを発見しました。 コンピュータビジョン。人間の手をマスキングする

スクリプトによる回答を実行すると、以下のエラーが発生します。

Traceback (most recent call last):
    File "skinimagecontour.py", line 13, in <module>
    contours, _ = cv2.findContours(skin_ycrcb, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
ValueError: too many values to unpack

コードです。

import sys
import numpy
import cv2

im = cv2.imread('Photos/test.jpg')
im_ycrcb = cv2.cvtColor(im, cv2.COLOR_BGR2YCR_CB)

skin_ycrcb_mint = numpy.array((0, 133, 77))
skin_ycrcb_maxt = numpy.array((255, 173, 127))
skin_ycrcb = cv2.inRange(im_ycrcb, skin_ycrcb_mint, skin_ycrcb_maxt)
cv2.imwrite('Photos/output2.jpg', skin_ycrcb) # Second image

contours, _ = cv2.findContours(skin_ycrcb, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
for i, c in enumerate(contours):
    area = cv2.contourArea(c)
    if area > 1000:
        cv2.drawContours(im, contours, i, (255, 0, 0), 3)
cv2.imwrite('Photos/output3.jpg', im)

どんな助けでも感謝します!

どのように解決するのですか?

OpenCV Stack Exchangeのサイトから答えを得ました。 回答

答え

<ブロッククオート

現在のOpenCVのmasterブランチを使用しているのでしょう: ここではreturn文が変更されています、以下を参照してください。 http://docs.opencv.org/modules/imgproc/doc/structural_analysis_and_shape_descriptors.html?highlight=findcontours .

したがって、該当する行を読み替える。

_, contours, _= cv2.findContours(skin_ycrcb, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

または:現在のトランクはまだ安定しておらず、おそらくさらにいくつかの問題に遭遇するでしょうから、OpenCV の現在の安定版である 2.4.9 を使用するとよいでしょう。