apresentação de classe Rect
classe opencv Rect é uma classe muito popular, uso isso aqui arrumado classe Rect
1. Rect criado
Matriz de criação exige quatro parâmetros, a saber, a parte superior esquerda coordenadas (x, y) e a largura e altura da matriz, de modo a criar formulação vez
Rect r(x,y,width,height);
2. Funções Comuns
2.1 tamanho () 和 área ()
Este conjunto de funções é usada para descrever o tamanho e área de um rectângulo. tamanho () devolve o valor é um tipo de tamanho variável, incluindo a largura e a altura do rectângulo, função da área () é retornado para a área de um rectângulo.
Rect rect1(0,0,300,300);
cout << rect1.size() << endl;
cout << rect1.area() << endl;
2,2 br () e Tl ()
Este conjunto de funções é usada para descrever um ponto de coordenadas rectangulares. l () retorna as coordenadas de canto inferior direito (BottomRight), enquanto TL () retorna o rectângulo é as coordenadas superior esquerdo (TopLeft). Estes tipos de valor duas funções de retorno são ponto
2.3 contém () 和 interior ()
Esta função devolve booleano grupo de tipos, e é usado para descrever a posição relativa de um ponto de rectângulo.
O uso é como segue:
Rect rect1(0,0,300,300);
Point x(1, 1);
cout << rect1.contains(x) << endl; //用来判断点x是否包含在矩形rect1中
cout<<x.inside(rect1)<<endl;//用来判断点x是否包含在矩形rect1中
A partir dos resultados, o código está sendo executado, funções e contém funções dentro estão determinados relação relativa ponto e retangular, em vez de "entrada de programação opencv3", escrito em, função Dentro usado para determinar se o retângulo no retângulo.
3. conversão rectangular
classe Rect e simplesmente adicionando um tipo de variável Ponto retangular alcançada pela tradução, e com a adição de alcançar uma variável rectangular Tipo do tamanho de zoom.
Testes são os seguintes:
//平移
Mat m = imread("1.jpg");
Rect rect1(0,0,300,300);
Point x(100, 100);
Scalar s(255, 255, 0);
rectangle(m, rect1, s);
rect1 += x;
rectangle(m, rect1, s);
imshow("a", m);
waitKey(0);
//放缩
Mat m = imread("1.jpg");
Rect rect1(0,0,300,300);
Size x(100, 100);
Scalar s(255, 255, 0);
rectangle(m, rect1, s);
rect1 += x;
rectangle(m, rect1, s);
imshow("a", m);
waitKey(0);
4. cálculo retângulo
Operadores pode ser alcançado por tomar & retângulo e definir o operador | assumir intersecção retangular pode ser implementado.
Mat m1 = imread("1.jpg");
Mat m2 = imread("1.jpg");
Rect rect1(0,0,300,300);
Rect rect2(0, 0, 100, 100);
Scalar s(255, 255, 0);
Rect rt1 = rect1 & rect2; //取并集
rectangle(m1, rt1, s);
Rect rt2 = rect1 | rect2; //取交集
rectangle(m2, rt2, s);
imshow("交集", m1);
imshow("并集", m2);