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
•
Ex)
Mat m1(2, 2, CV_8U);
m1(0, 0) = -50; // -> 206
m1(0, 1) = 300; // -> 44
m1(1, 0) = saturate_cast
m1(1, 1) = saturate_cast
4. Пользовательские интерфейсы OpenCV
(OpenCV User Interfaces)
Контрольниевиндов / Window Control
•
Named Window (winname, flags) : Устанавливает имя window и создает window с этим именем
–
flags : Изменение размера window
•
imshow : отображает матрицу "mat" как окно в окне winname
•
destroyWindow : удаляет указанное окно с экрана
•
destroyAllWindows : удалить все видимые окна
•
moveWindow (x, y): переместить окно winname в указанную позицию (x (столбец, y (строка))
#include
using namespace cv;
using namespace std;
int main
{
Mat image1(300, 400, CV_8U, Scalar(255));
Mat image2(300, 400, CV_8U, Scalar(100));
string title1 = "white window control";
string title2 = "gray window control";
namedWindow(title1, WINDOW_AUTOSIZE);
namedWindow(title2, WINDOW_NORMAL);
moveWindow(title1, 100, 200);
moveWindow(title2, 300, 200);
imshow(title1, image1);
imshow(title2, image2);
waitKey;
destroyAllWindows;
return 0;
}
Контрольниесобытиямиклавиатуры / Keyboard Event Control
•
waitKey (delay, задержка): ожидает ввода ключа в течение времени задержки(delay), возвращает(return) значение клавиши, когда происходит событие клавиши,
–
delay : время задержки. ms.
–
delay <= 0 : Бесконечное ожидание, пока не произойдет ключевое событие
–
delay > 0 : дождитесь ввода ключа в течение времени задержки. return (Возвращает) -1, если в течение времени задержки нет клавишного ввода
•
Используйте waitKeyEx для ввода клавиши со стрелкой (arrow key)
•
Event (Событие) происходит только когда window active (активно).
Контрольние событиями мыши / Mouse Event Control
•
Создать callback function (функцию обратного вызова) (event handler) (обработчик событий) для обработки событий мыши и зарегистрировать эту функцию в системе через setMouseCallback