Перейти к содержанию

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

Автор:

Категория
ГИА по информатике и ИКТ (ОГЭ, ГВЭ)
Год издания
Издательство
Автор
Возрастное ограничение
12+
Обновлено
25.09.2026

Аннотация

Внедрение цифровой обработки изображений / Introduction of Digital Image Processing.

Читать «Мультимедийное Программирование OpenCV» — Serdar Orazdurdyyev онлайн

Страница 4 из 6

{ Mat m1(4, 3, CV_32FC3); cout << “Dimension = " << m1.dims << endl; cout << “Rows = " << m1.rows << endl; cout << “Columns = " << m1.cols << endl << endl; cout << “Channels = " << m1.channels() << endl; cout << “Data Type = " << m1.depth() << endl; cout << “Matrix Size = " << m1.size() << endl << endl; cout << “Total Data Number = " << m1.total() << endl; return 0; } #include using namespace cv; using namespace std; int main() { Mat m1(2, 3, CV_8U, 2); Mat m2(2, 3, CV_8U, Scalar(10)); Mat m3 = m1 + m2; Mat m4 = m2 – 6; Mat m5 = m1; cout << "[m2] =" << endl << m2 << endl; cout << "[m3] =" << endl << m3 << endl; cout << "[m4] =" << endl << m4 << endl << endl; cout << "[m1] =" << endl << m1 << endl; cout << "[m5] =" << endl << m5 << endl << endl; m5 = 100; cout << "[m1] =" << endl << m1 << endl; cout << "[m5] =" << endl << m5 << endl; return 0; } • Копирование исходной матрицы в другую матрицу / Copy original matrix to another matrix • Матовый клон () / Mat clone () • void copy To (матрица целей, матрица маски) / void copy To (objective matrix, mask matrix) – mask matrix : Копирование только ненулевых элементов (elemen) • void convertTo (objective matrix, data type) – data type : data type, которые вы хотите изменить #include using namespace cv; using namespace std; int main() { double data[] = { 1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7, 8.9, 9.9, 10, 11, 12 }; Mat m1(3, 4, CV_64F, data); Mat m2 = m1.clone(); // copy m1 to m2 Mat m3, m4; m1.copyTo(m3); // copy m1 to m3 m1.convertTo(m4, CV_8U); // copy m1 to m4 converting to uchar cout << "[m1] =\n" << m1 << endl; cout << "[m2] =\n" << m2 << endl; cout << "[m3] =\n" << m3 << endl; cout << "[m4] =\n" << m4 << endl; return 0; } векторный класс / vector Class • Контейнер последовательностей(Sequence Container) C++ STL(Standard Template Library) • доступ к элементу(element access) вектора(vector) : используйте оператор индекса(subscript operator), [], как массив(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) •