2013-07-03 2 views
1

Может ли кто-нибудь сказать мне, что делает cvmSet на самом деле в следующем коде. Особенно L0[y*5 + x] этот часть. Кроме того, массив объявлен 1D-массив или 2D-массив? Я думаю, это 1D массив. Я просто хочу понять эту конкретную линию. Любая помощь будет оценена.понимание конкретной строки в openCV

Я имею в виду, если значение массива вычисляется как L0 [y * 5 + x], то какова роль элементов в L0, то какова точка инициализации элементов массива 1D L0?

float L0[]={ 
     -1,-1,-1,-1,-1, 
     0, 0, 0, 0, 0, 
     2, 2, 2, 2, 2, 
     0, 0, 0, 0, 0, 
     -1,-1,-1,-1,-1 }; 

    CvMat* rgbMat = cvCreateMat(5, 5, CV_32FC1); 

    for (int y = 0; y < 5; y++) 
    { 
     for (int x = 0; x < 5; x++) 
      cvmSet(rgbMat, y, x, L0[y*5 + x]); 
    } 
+1

Почему ваш отпечаток все манки? –

+0

@ user2481422, пожалуйста, измените название, соответствующее заданному вопросу, по крайней мере упомянув о * cvmSet * –

ответ

2

L0 объявлен как массив 1D из 25 элементов, но он интерпретируется как 2D 5x5, обычная вещь на самом деле. L0 [y * 5 + x] используется только для этого, чтобы получить элемент массива, соответствующий [x, y] в 2D.

+0

, так что это означает, что от float L0 до конца для первого для цикла означает перед IplImage * dst = cvCreateImage (cvSize (src-> width, src -> высота), src-> глубина, 3); это просто создание 2D-матрицы, верно? – user2481422

+0

Да, rgbMat - это 5x5 2D-матрица, созданная на основе L0 (которая кажется некоторым фильтром) – Alex1985

+0

Могу ли я сразу объявить 2D-матрицу вместо использования мата? – user2481422

1

cvmSet(image,x,y,value) Линия объясняется:

установить пиксел х, у в изображении со значением.

Значение выводится для массива L0. Например. для пикселя (x, y) = (1,2):

value= L0[y*5 + x] = L0[2*5+1] = L0[11] = 2.

+0

, так что какова роль элементов в L0, я имею в виду, если значение массива вычисляется как L0 [y * 5 + x], то какова точка в инициализация элементов массива 1D L0? – user2481422

+0

Это отображение. Координаты X, Y отображаются в L0. Это нетехнический вопрос, и вы найдете ответ в теории. – William

+0

Проверьте [это] (http://stackoverflow.com/questions/17364987/knowing-the-value-of-an-mat-element-opencv/17365489#17365489) нить. – William

Смежные вопросы