определить уменьшение зубов на изображении с помощью Python - PullRequest
0 голосов
/ 26 апреля 2018

У меня есть изображение зуба, мне нужно узнать его размеры, длину и ширину. вот код, который я попробовал

import numpy as np
import argparse
import cv2
import numpy
import pylab
from PIL import Image
from tr1 import f
import matplotlib.pyplot as plt

изображение открытого зуба

img = Image.open(open('kr1.jpg'))
data = np.asarray( img, dtype="int32" )
# find all the 'black' shapes in the image
lower = np.array([3, 3, 3])
upper = np.array([15, 15, 15])
shapeMask = cv2.inRange(data, lower, upper)

найти контуры в маске

(cnts, _) = cv2.findContours(shapeMask.copy(), cv2.RETR_EXTERNAL,
    cv2.CHAIN_APPROX_SIMPLE)
print "I found %d black shapes" % (len(cnts))
cv2.imshow("Mask", shapeMask)

я получаю ошибку

[Traceback (most recent call last):
  File "<stdin>", line 3, in <module>
ValueError: too many values to unpack][1]

1 Ответ

0 голосов
/ 27 апреля 2018

cv2.findContours() возвращает кортеж с 3 значениями, но вы распаковываете только 2.

Если вы заботитесь только о первом значении, оно должно быть

cnts, _, _ = cv2.findContours(shapeMask.copy(), cv2.RETR_EXTERNAL,
cv2.CHAIN_APPROX_SIMPLE)
...