본문 바로가기

# 미사용

(138)
# 미사용/OpenCV [OpenCV] 기본도형 그리기 기본 도형기본 도형의 종류직선사각형원타원텍스트 선의 종류 (LINE_TYPE)기본 도형을 이루는 선의 종류 FILLED 꽉찬 도형 LINE_4 4방향 연결선 LINE_8 8방향 연결선 (기본값) LINE_AA 안티 에일리싱이 적용된 선 figure ) 직선 그리기 //! 기본 색상 및 하얀색 이미지 생성. const Scalar black(0, 0, 0); const Scalar white(255, 255, 255); const string title = "canvas"; Mat image = Mat(Size(500, 250), CV_8UC3, white); //! 직선 그리기. Point srt(10, 10); Point end(150, 150); Scalar color = black; int thic..

2019. 10. 29. 20:31

# 미사용/OpenCV [OpenCV] 윈도우 및 이벤트 관리 윈도우 창 관리 Mat img = imread("./opencv_logo.png", IMREAD_UNCHANGED); CV_Assert(img.data); //! window_name이라는 이름으로 윈도우 생성. //! 윈도우의 크기는 후에 지정된 행렬의 크기에 따라 변경됨. namedWindow("window_name", WINDOW_AUTOSIZE); waitKey(); //! window_name2에 img 표시. //! 해당 namedWindow가 없다면 직접 생성함. imshow("window_name2", img); waitKey(); //! 해당 윈도우 창을 (x, y)좌표로 이동. moveWindow("window_name2", 50, 50); waitKey(); //! 해당 윈도우 창의 ..

2019. 10. 29. 18:53

# 미사용/OpenCV [OpenCV] 이미지 입출력 이미지 읽기Mat imread(path, flag) 함수로 이미지를 읽을 수 있다. 자주 쓰는 플래그의 종류 IMREAD_UNCHANGED 파일에 저장된 그대로 가져온다. (alpha채널 포함) IMREAD_GRAYSCALE 그레이화된 이미지로 가져온다. IMREAD_COLOR alpha를 제외한 컬러채널만 가져온다. ... 샘플 이미지 example) Mat img = imread("./opencv_logo.png", IMREAD_UNCHANGED); //! img가 로딩되지 않았다면 익셉션 발생. CV_Assert(img.data); //! test라는 윈도우에 img 출력 imshow("test", img); //! 곧바로 프로그램 종료하지 않기. waitKey(); 이미지 쓰기bool imwrit..

2019. 10. 29. 17:37

# 미사용/OpenCV [OpenCV] 벡터를 행렬로 변환 vector를 mat을 생성하는 방법아래의 단계를 따르면 된다.mat의 생성자에 vector를 넘기자.원하는 형태로 reshape하자. example) //! data = [0, 6) vector data; for(int i=0; i

2019. 10. 29. 16:39

# 미사용/OpenCV [OpenCV] 행렬의 영역참조 (관심영역) 행렬 메모리 요약서로 다른 Mat (= 행렬 헤더) 객체는같은 행렬 메모리를 공유할 수 있고,다른 행렬 메모리를 가르킬 수 있다. 관심 영역 (ROI - Region Of Interest)어떤 행렬 메모리의 부분 행렬 메모리.쉽게 말하자면, 보고 싶은 영역만 본다는 것 이다. 이 때, Mat을 수정하게 된다면,당연히 원본 행렬 메모리에도 수정이 가해진다. Range를 통한 범위 지정관심영역을 생성하기 전에 Range 클래스에 대해 알아야 한다. Range 클래스는 1차원 영역에서 범위를 지정하며,[srt, end) 구간표현을 사용한다. 여기서 Range가 2개 모이면,2차원 영역에서 범위를 지정할 수 있다.x축 방향에서 하나.y축 방향에서 하나. 관심영역 생성행렬 헤더와 Range 클래스 2개가 모이면,..

2019. 10. 29. 15:46

# 미사용/OpenCV [OpenCV] 행렬의 생성 및 활용 Mat 클래스 구조Mat 클래스는 행렬 자료구조이며,각 원소는 최대 4개의 채널로 구성된다. (rgb + alpha) 아래는 2채널 행렬 자료구조의 모식도이다. Mat 클래스의 자료형Mat 클래스는 템플릿은 없지만,추가적인 파라미터를 통해 자료형이 결정되며,데이터형 + 채널형 순서로 상수값이 정의되어 있다. 데이터 형 CV_8U depth 0unsigned char CV_8S depth 1char CV_16Udepth 2unsigned short int CV_16Sdepth 3short int CV_32Sdepth 4int CV_32Fdepth 5float CV_64Fdepth 6double depth는 자료형을 구분하기 위한 상수라고 생각하면 편하다. 채널 형 1Cb (default) 2Cbg 3Cbg..

2019. 10. 29. 01:10

# 미사용/OpenCV [OpenCV] 기본 클래스 활용 기본 클래스 종류OpenCV에서 기본적인 연산의 주체는 다음과 같다.VecPoint_Point3_Size_Rect_RotatedRectScalar_ Vec 클래스 활용Vec 클래스는 다음과 같이 활용될 수 있다.길이가 같은 Vec 끼리 더하기.자료형이 다른 Vec 으로 변환하기.Vec의 각 요소에 일정 값으로 곱하거나 나누기. //! 길이가 같은 Vec 끼리 더하기. Vec3i a1 = {1, 2, 3}; Vec3i a2 = {3, 2, 1}; Vec3i a3 = a1 + a2; //! [4, 4, 4] //! 다른 자료형 Vec 으로 변환하기. Vec3f b1 = {1.1, 2.2, 3.3}; Vec3i b2 = (Vec3i)b1; //! [1, 2, 3] //! 일정 값으로 곱하거나 나누기. Vec3..

2019. 10. 28. 22:10

# 미사용/OpenCV [OpenCV] 기본 클래스 생성 기본 클래스 OpenCV에서 연산의 주체가 되는 클래스이다. 기본 클래스 종류Vec Point_Point3_Size_Rect_RotatedRectScalar_ 기본 클래스 훑어보기 # Vec _Tp 자료형의 데이터를 n개 담을 수 있는 클래스이다. 고정배열이라고 생각하면 편하다. Vec vec = {3, 4}; cout

2019. 10. 28. 19:57