Мультимедийное Программирование OpenCV - страница 6

Шрифт
Интервал


как

массив

(array)

• 

vector() : конструктор(constructor)

• 

void push_back() : добавляет элемент в конец vector

• 

void pop_back() : удалить последний элемент


#include

using namespace cv;

using namespace std;

int main()

{

vector v1;

v1.push_back(Point(10, 20));

v1.push_back(Point(20, 30));

v1.push_back(Point(50, 60));

vector v2(3, 9.25);

Size arr_size[] = { Size(2, 2), Size(3, 3), Size(4, 4) };

int arr_int[] = { 10, 20, 30, 40, 50 };

vector v3(arr_size, arr_size + sizeof(arr_size) / sizeof(Size));

vector v4(arr_int + 2, arr_int + sizeof(arr_int) / sizeof(int));

cout << "[v1] " << ((Mat)v1) << endl << endl;

cout << "[v2] " << ((Mat)v2) << endl << endl;

cout << "[v2] " << ((Mat)v2).reshape(1, 1) << endl;

cout << "[v3] " << ((Mat)v3).reshape(1, 1) << endl;

cout << "[v4] " << ((Mat)v4).reshape(1, 1) << endl;

return 0;

}


Классдиапазона / Range class

• 

Используется в основном для указания диапазона row(строк) и column(столбцов) в классе Mat.

• 

Range(int start, int end)

• 

start(начало) в диапазоне, end(конец) не в диапазоне


Функция операции с матрицей / Matrix Operation Function

• 

Matexp

inv

(метод): расчет обратной матрицы


– метод

• 

Matexp inv(method) : inverse matrix calculation

– method





• 

Matexp mul

(input matrix):

Выполнить

поэлементное

(element-wise)

умножение

двух

матриц

• 

Matexp t

() : вычислить транспонированную матрицу(transposed matrix)


• 

Одновременные уравнения

(simultaneous equation)





#include

using namespace cv;

using namespace std;

int main()

{

float data[] = {

      1, 0, 2,

      -3, 2, 6,

      -1, -2, 3

};

float ans[] = {6, 30, 8};

Mat m1(3, 3, CV_32F, data);

Mat m2(1, 3, CV_32F, ans);

Mat m2_t = m2.t();

Mat m1_inv = m1.inv(DECOMP_LU);

Mat x = m1_inv * m2_t;

cout << "[m1] = " << endl << m1 << endl;

cout << "[m1_inv] = " << endl << m1_inv << endl << endl;

cout << "[m2(transposed)] = " << endl << m2_t << endl << endl;

cout << “solution x1, x2, x3 = " << x.t() << endl;

}


насыщенный_бросок < > / saturate_cast < >

• 

image data는

основном

представляют собой кодированные(encoding) данные с 8 битами на канал.

• 

Поскольку он использует только 8bit, он имеет ограниченный диапазон значений пикселей (0 ~ 255).

• 

saturate_cast() template method : Когда значение сохраняется в 8-битном, если оно превышает 8-битный диапазон, оно сохраняется как 0 или 255