скачать книгу бесплатно
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 <opencv2/opencv.hpp>
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<uchar>(-50);
m1(1, 1) = saturate_cast<uchar>(300);
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 <opencv2/opencv.hpp>
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
•