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

Читать онлайн.
Название Мультимедийное Программирование OpenCV
Автор произведения Serdar Orazdurdyyev
Жанр
Серия
Издательство
Год выпуска 2024
isbn



Скачать книгу

sz(100.5, 60.6);

      Point2f pt1(20.f, 30.f), pt2(100.f, 200.f);

      Rect_<int> rect1(10, 10, 30, 50);

      // column, row, width, height

      Rect_<float> rect2(pt1, pt2);

      Rect_<double> rect3(Point2d(20.5, 10), sz);

      Век-класс / Vec Class

      • 

      Шаблонный класс(template class) для вектора(Vector) чисел с небольшим количеством элементов.

      • 

      Укажите data type(тип данных) и количество element(элементов) между < и >.

      Vec<uchar, 2> <==> Vec2b

      Vec<int, 3> <==> Vec3i

      Vec<float, 4> <==> Vec4f

      Vec<double, 5> <==> Vec5d

      • 

      Ex)

      Vec<int, 2> v1(5, 12);

      Vec<double, 3> v2(40, 130.7, 125.6);

      Vec2b v3(10, 10);

      Vec6f v4(40.f, 230.25f, 525.6f);

      Vec3i v5(200, 230, 250);

      Скаляр_класс / Scalar_ Class

      • 

      Укажите четыре значения в качеств data type(типа данных), чтобы указать значение яркости pixel(пикселя)

      • 

      Сохраните четыре значения Blue, Green, Red, Alpha(transparency).

      • 

      Установите в 0, если при инициализации (Initialization) не указано значение

      • 

      Scalar_<double> <==> Scalar

      • 

      Ex)

      Scalar_<uchar> red(0, 0, 255);

      Scalar_<int> blue(255, 0, 0);

      Scalar_<double> color1(500);

      Scalar_<float> color2(100.f, 200.f, 125.9f);

      Мат Класс / Mat Class

      • 

      Класс(class), используемый для представления image(изображения).

      • 

      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 (матрица