Мультимедийное Программирование OpenCV. Serdar Orazdurdyyev
Чтение книги онлайн.
Читать онлайн книгу Мультимедийное Программирование OpenCV - Serdar Orazdurdyyev страница 5
•
Mat (строки, столбцы, тип, скаляр (rows, cols, type, Scalar))
строки: размер строки (rows: row size)
столбцы: размер столбца (cols : column size)
тип: тип данных (type : data type)
Скаляр: матричное значение (Scalar : matrix value)
#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;
int main()
{
float data[] = {
1.2f, 2.3f, 3.2f,
4.5f, 5.f, 6.5f,
};
Mat m1(2, 3, CV_8U);
Mat m2(2, 3, CV_8U, Scalar(300));
Mat m3(2, 3, CV_32F, data);
Size sz(2, 3);
Mat m4(Size(2, 3), CV_64F);
Mat m5(sz, CV_32F, data);
cout << "[m1] =" << endl << m1 << endl;
cout << "[m2] =" << endl << m2 << endl;
cout << "[m3] =" << endl << m3 << endl << endl;
cout << "[m4] =" << endl << m4 << endl;
cout << "[m5] =" << endl << m5 << endl;
return 0;
}
#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;
int main()
{
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 <opencv2/opencv.hpp>
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 <opencv2/opencv.hpp>
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