Как назначить объект списка cvmat, используя интерфейс Python в OpenCV? - PullRequest
1 голос
/ 21 апреля 2011

Я хочу заполнить объект cvMat, используя cv.SetData () , используя интерфейс Python в OpenCV 2.1 .В C это можно сделать с помощью приведенного ниже кода.

double a[] = {1,2,3,4,5,6,7,8,9,10,11,12};
cvMat Ma;
cvInitMatHeader(&Ma,3,4,CV_64FC1,a,CV_AUTOSTEP);

, но в интерфейсе python нет функции InitMatHeader , поэтому я пытаюсь кодировать так:1011 *

затем я получил TypeError: аргумент CvMat 'src' не имеет данных .Кажется, переменная Ma не была инициализирована, так как я могу завершить эту операцию, используя numpy?

1 Ответ

4 голосов
/ 21 апреля 2011

Попробуйте передать array.array('d', vals) или numpy.array(vals, numpy.float64):

import array
import cv
import numpy

ar = array.array('d', range(1, 13))
na = numpy.array(range(1, 13), numpy.float64)
for vals in (ar, na):
    m = cv.CreateMatHeader(3, 4, cv.CV_64FC1)
    cv.SetData(m, vals, cv.CV_AUTOSTEP)
    print cv.mGet(m, 0, 2)

Выход:

3.0
3.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...