저번에 사칙연산 예기 안한다고했는데 해버렸음 물론 지금도 하는중이지만..... 내맘대로해야지@@ㅋㅋ

이번시간엔 Scalar에 대해 배울것이다!! 

Scalar : [명사] <물리> 하나의 수치만으로 완전히 표시되는 양. 벡터, 텐서 따위의 유방향량(有方向量)에 대하여 방향의 구별이 없는 수량이다. 예를 들면, 질량ㆍ에너지ㆍ밀도ㆍ전하량 따위를 나타내는 수이다. 

요따구로 나오는데 다필요없다. opencv에서만은 그냥 색깔이다. 색중에서도 RGB.

소스나봅세~


1
2
3
4
5
6
7
8
9
10
#include<opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main(void)
{
    Mat img(200200, CV_8UC3, Scalar(000));
    imshow("img", img);
    waitKey();
    return 0;
}
cs


완전쉽다 ㅋㅋㅋㅋ


결과로는 그냥 검은창이 뜰것이다. 귀찮아서 결과사진 안올렸어요~~~

검은창만뜨는 이유는 Scalar에서 0,0,0 RGB모두 0을 넣어줬기 때문이다.

저번 게시글에 적어놨지만 다시적어보면 Scalar(1,2,3) 에서 3이 Red 2가 Green 1이 Blue이다!

다양한 색을 출력해보고 싶으면 구글에 검색해보던가~ 직접 노가다해보던가~~~이다.

ㅋㅋ 수고했다.! 끝이에요!@@@@@


다음엔 본격적인 Mat클래스를 해보도록 합시다@@ Mat끝내면 웬만한 클래스는 다끝난걸꺼에요ㅎㅎ

암튼 날로먹는 이번게시물 ㅋㅋ 빠이!

'OpenCV' 카테고리의 다른 글

Mat_ 클래스  (0) 2016.12.07
Rect_ 클래스  (0) 2016.12.07
Size_ 클래스  (0) 2016.12.07
Point3_ 클래스  (0) 2016.12.07
Point_ 클래스  (0) 2016.05.07

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(100100320240);
    cout << "rt1: (" << rt1.x << "," << rt1.y << "," << rt1.width << "," << rt1.height << ")" << endl;
 
    cout << "rt1:" << rt1 << endl;
 
    Mat img(600800, CV_8UC3);
    namedWindow("img", WINDOW_AUTOSIZE);
    rectangle(img, rt1, Scalar(25500), 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

웬만한 클래스는 전부 사칙연산이 가능한가보다. 그러므로 앞으로 사칙연산예기는 안하것음(귀차나)..ㅋㅋㅋㅋ


그럼 본격적으로 시작해보면!


Size_ 클래스!   말그대로 Size! 크기! 크기를 나타내는 함수이다!  Size2i, Size, Size2f 등이있다는데 우리는 Size만 쓸것이다! 왜냐? Size하나 익숙하게 해놓고 나중에 필요하면 찾아서 응용하면되니깐~


항상 패턴이 일정할거 같은데,,,,, 함수 설명잠깐하고 바로 소스로 넘어갈것 같다.


소스보자!


1
2
3
4
5
6
7
8
9
10
11
12
13
#include<opencv.hpp>
using namespace std;
using namespace cv;
int main(void)
{
    Size size1(100100), size2(200200);
    cout<<"Size1 = "<<size1<<endl;
    cout<<"Size2 = "<<size2<<endl;
    
    if(size1 == size2)
        cout<<"same!"<<endl;
    return 0;
}
cs


결과는?


1
2
3
size1 = (100100)
size2 = (200200)
 
cs


결과를 내가 직접 손으로 작성하기때문에 컴퓨터가 출력해주는 결과와 괄호모양이 다를수도있고 띄어쓰기도 다를수 있으니깐 유의하세요!! 숫자는 안바뀔것이요!!!!


size1을 100x100으로 설정하고 size2는 200x200으로 설정해놓은거에요

그리고 10번줄을 보면 같은지 보고있는데 둘이 크기가 다르니 출력x !


또 끝임.. 초반엔 너무쉬운듯하지만 잘복습해두시길! 나중에 많이 사용하니깐!!!!!

다음엔 사각형인 Rect_함수를 설명해줄께요!!! 빠빠

 

'OpenCV' 카테고리의 다른 글

Scalar_ 클래스  (0) 2016.12.07
Rect_ 클래스  (0) 2016.12.07
Point3_ 클래스  (0) 2016.12.07
Point_ 클래스  (0) 2016.05.07
DataType 클래스  (0) 2016.05.07

+ Recent posts