요즘 클래스에 대해서 글을 적고있긴한데 나도 지식이 부족하다보니 책에 의존하는 경향이 있긴하다. 하지만 내가 이해한것을 바탕에 두고 부족한 부분이나 애매한 부분을 책에 의존하고 있기 때문에 생초보들도 보고 따라하면 이해는 갈 것이다.(안갈수도..ㅠㅠ)
뭐가 됫든간에 이번엔 Point_ 클래스에 대해 알아볼 것이다.
저어번 포스트에 Point_클래스는 2D좌표를 표현하는 클래스라고 적어놓은것이 있다. (한번씩 보고오길 바람. 웬만한 클래스는 다 적어놨어요.)
다들 C언어 하실때 typedef 구조체 정의하시는거 배우셧죠??? (C언어 배우고 opencv를 해야 이해하기 편합니당. 안배우셨다면 약간 힘드실수도..) 그 typedef 를 사용하여 정의한 Point2i.,Point, Point2f, Point2d 자료형이 있답니다. 거기서 제생각엔 point를 제일 많이 사용하는거 같기도 해요.. 물론 내 생각..
이 자료형들로 +,-,*,=,==,!= 등의 연산자를 사용할수 있어요!
소스보시죠!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | #include "opencv.hpp" using namespace std; using namespace cv; int main() { Point2f pt1(0.1f, 0.2f), pt2(0.3f, 0.4f); Point pt3 = (pt1 + pt2)*10.0; cout << "pt1:" << pt1 << endl; cout << "pt2:" << pt2 << endl; cout << "pt3:" << pt3 << endl; cout << "pt1(" << pt1.x << "," << pt1.y << ")" << endl; cout << "pt2(" << pt2.x << "," << pt2.y << ")" << endl; cout << "pt3(" << pt3.x << "," << pt3.y << ")" << endl; if (pt1 == pt2) cout << "1,2 same" << endl; else cout << "1,2 different" << endl; return 0; } | cs |
결과보시죠!
1 2 3 4 5 6 7 8 9 | pt1:[0.1, 0.2] pt2:[0.3, 0.4] pt3:[4, 6] pt1(0.1,0.2) pt2(0.3,0.4) pt3(4,6) 1,2 different | cs |
제가 가끔가다가 메인함수 안에 freopen("output.txt","w",stdout);
이걸 쓸때도 있고 안쓸때도있는데 이유가 결과를 여기다가 올리려고 output 텍스트 파일에 결과를 받아적는거에요. 그래서 있던없던 프로그램 내용엔상관없으니 혼동하지마셔요!
결과로 돌아와서 Point pt1 이라고 변수를 선언하고 pt1 적은다음 pt1바로 옆에 점을 하나 찍으면 x좌표를 사용할수도 있고 y좌표를 사용할 수도 있습니다. 연산도 가능하다는거 잊지마시고!
point_ 이 클래스는 2차원이다!! 알아두셔요!!!!! 끝!
'OpenCV' 카테고리의 다른 글
| Size_ 클래스 (0) | 2016.12.07 |
|---|---|
| Point3_ 클래스 (0) | 2016.12.07 |
| DataType 클래스 (0) | 2016.05.07 |
| opencv의 기본 클래스!! (0) | 2016.05.06 |
| opencv 히스토그램 그리기 (0) | 2016.03.20 |