Rect 클래스.. 뭔가 Rectangle 이 느껴지지않아요??ㅋㅋㅋ 나만그런가 ㅋㅋ 암튼! 사각형을 표현하는 함수에용~~~
이거도 사칙연산이 된다구 하네요. Rect클래스 안에 많은 함수가 포함되어있지만 여기서 다루기엔 좀 급한감이 있고 필요할때마다 배우면서 사용해도 될거 같아서 일단은 대략적인 설명만 해둘게요~
소스 ㄱㄱ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 |
#include<opencv2\opencv.hpp>
using namespace std;
using namespace cv;
int main(void)
{
Rect rt1(100, 100, 320, 240);
cout << "rt1: (" << rt1.x << "," << rt1.y << "," << rt1.width << "," << rt1.height << ")" << endl;
cout << "rt1:" << rt1 << endl;
Mat img(600, 800, CV_8UC3);
namedWindow("img", WINDOW_AUTOSIZE);
rectangle(img, rt1, Scalar(255, 0, 0), 2);
imshow("img", img);
waitKey();
return 0;
} |
cs |
결과?
아주잘나오네요~~ 일단 소스를 설명하자면
Rect rt1(100, 100, 320, 240);
요건 왼쪽위가 100,100 이라는 소리이고 100,100 으로부터 가로가 320 세로가 240 이라는 소리입니당! x,y좌표(앞에 100,100) 생각하시면 될듯해요!
cout << "rt1:" << rt1 << endl;
여기서 나온 결과처럼 320 x 240 from 100,100 => 100,100 에서 320 x 240 사이즈의 크기를 가지고있는 커다란 구조체이죠.
Mat img(600, 800, CV_8UC3);
이게 무엇이냐! Mat행렬이라는 함수인데 뒤에가면 조금더 자세히알려드리니 걱정마시고 그냥보시기만!!!
600x800짜리 창을 하나 만들겠다는 소리에요. 뒤에 CV_8UC3은 상수인데 opencv에서 그냥 정해둔듯!
rectangle(img, rt1, Scalar(255, 0, 0), 2);
rectangle함수인데 여기서 img에 rt1으로 정의된 사각형을 scalar(255,0,0)의 색으로 두께는 2만큼인 사각형을 그려놓으란 소리에요
그래서 imshow함수로 자료형이 Mat인 img 를 출력해줘서 저렇게 파란 사각형이 뜨게 되는것이구요.ㅎㅎ
참고로 scalar(255,0,0)은 bgr순서로 맨앞이 blue 중간이 green 마지막이 red인것 같아요!
그리고 waitKey() ..-> 사용자의 키를 입력받기를 기다리는거죠
입력받으면 바로꺼짐!
무튼~~ Rect_클래스에 대해서 대략적으로 알아보는 시간이었습니다!!!! 다음엔~~Scalar 클래스에대해서 알아보겠습니다!!@@@@@
'OpenCV' 카테고리의 다른 글
Mat_ 클래스 (0) | 2016.12.07 |
---|---|
Scalar_ 클래스 (0) | 2016.12.07 |
Size_ 클래스 (0) | 2016.12.07 |
Point3_ 클래스 (0) | 2016.12.07 |
Point_ 클래스 (0) | 2016.05.07 |