ValueError: общий размер нового массива должен быть неизменным

Я пытаюсь выполнить код из этого URL-адреса . Однако я начал получать эту ошибку:

des = np.array(des,np.float32).reshape((1,128)) ValueError: total size of new array must be unchanged 

Однако я не внес серьезных изменений. Но я вложу то, что я сделал:

 import scipy as sp import numpy as np import cv2 # Load the images img =cv2.imread("image1.png") # Convert them to grayscale imgg =cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) # SURF extraction surf = cv2.FeatureDetector_create("SURF") surfDescriptorExtractor = cv2.DescriptorExtractor_create("SURF") kp = surf.detect(imgg) kp, descritors = surfDescriptorExtractor.compute(imgg,kp) # Setting up samples and responses for kNN samples = np.array(descritors) responses = np.arange(len(kp),dtype = np.float32) # kNN training knn = cv2.KNearest() knn.train(samples,responses) modelImages = ["image2.png"] for modelImage in modelImages: # Now loading a template image and searching for similar keypoints template = cv2.imread(modelImage) templateg= cv2.cvtColor(template,cv2.COLOR_BGR2GRAY) keys = surf.detect(templateg) keys,desc = surfDescriptorExtractor.compute(templateg, keys) for h,des in enumerate(desc): des = np.array(des,np.float32).reshape((1,128)) retval, results, neigh_resp, dists = knn.find_nearest(des,1) res,dist = int(results[0][0]),dists[0][0] if dist<0.1: # draw matched keypoints in red color color = (0,0,255) else: # draw unmatched in blue color #print dist color = (255,0,0) #Draw matched key points on original image x,y = kp[res].pt center = (int(x),int(y)) cv2.circle(img,center,2,color,-1) #Draw matched key points on template image x,y = keys[h].pt center = (int(x),int(y)) cv2.circle(template,center,2,color,-1) cv2.imshow('img',img) cv2.imshow('tm',template) cv2.waitKey(0) cv2.destroyAllWindows() 

Любая помощь по этому поводу очень ценится.

One Solution collect form web for “ValueError: общий размер нового массива должен быть неизменным”

Я была такая же проблема. Я обнаружил, что изменил длину данных. Произведение аргументов reshape должно быть равно длине массива, который вы меняете. В твоем случае:

 des = np.array(des,np.float32).reshape(1, len(des)) 
  • FileStorage для OpenCV Python API
  • OpenCV Python и гистограмма ориентированного градиента
  • Добавление окна GUI в программу python opencv2 с pygtk3
  • openCV vs GIMP, обнаружение кромок в openCV
  • Удалить фон и помехи от изображения
  • Аномалия с установкой эллипса при использовании cv2.ellipse с различными параметрами?
  • Случайный лес не работает в opencv python (cv2)
  • Python OpenCV - проблема обнаружения крошечных «дыр» (кругов)
  •  
    Interesting Posts for Van-Lav

    Что такое единица переменной высоты в «barh» matplotlib?

    Как сохранить пользовательский категоризированный корпус в NLTK

    Преобразование списка кортежей разных размеров в словарь

    Запуск отладчика python автоматически при ошибке

    Установка pip на Mac OS дает разрешение на отказ: '/Library/Python/2.7/site-packages/pip

    multiprocessing.Pool зависает, если дочерний элемент вызывает ошибку сегментации

    Невозможно отправить запись с указанием конкретного идентификатора, если идентификатор указан как ForeignKey в Django

    Что такое choice_set.all в учебнике Django

    Django – наличие промежуточного программного обеспечения для связи с представлениями / шаблонами

    Как разрешить «ошибка исполняемого файла хромированной решетки в PATH» при запуске Selenium Chrome с использованием virtualenv в PyDev?

    Как настроить ipython для отображения целых чисел в шестнадцатеричном формате?

    Что такое эквивалент Python статических переменных внутри функции?

    База данных о постоянстве (MySQL / MongoDB / Cassandra / BigTable / BigData) Vs Массив без сохранения (PHP / PYTHON)

    Qt.ScrollBarAsNeeded не показывает полосу прокрутки, когда это действительно необходимо

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

    Python - лучший язык программирования в мире.