ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Day4
    교육/서울 ICT 이노베이션 고오급 시각과정 2021. 5. 10. 14:17
    728x90

    1. Visual Studio2019에서 opencv 라이브러리 사용하는 방법

    설정

    1. 프로젝트 속성에 들어가서 창의 윗부분에 있는 구성 : 모든 구성 / 플랫폼 : x64 로 변경

    2. c/c++에 추가 포함 디렉터리에 C:\opencv\build\include 추가

    3. 링커 일반에 들어가서 추가 라이브러리 디렉터리에 C:\opencv\build\x64\vc15\lib 추가

    4. 링커 입력에 들어가서 추가 종속성에 opencv_world버전d.lib;추가(내경우엔 4.5.2버전이라 opencv_world452d.lib;추가)

    5. 프로젝트 속성에서 건드리는 건 다 끝났고 visual studio창으로 돌아와서 솔루션 플랫폼을 x64로 맞춰준다

    6. 프로젝트가 들어있는 폴더에 C:\opencv\build\x64\vc15\bin에 들어있는 opencv_world버전.dll이랑 opencv_world버전d.dll파일을 복사해서 붙여넣어주면 끝!

    테스트

    #include <stdio.h>
    #include<opencv2/imgcodecs.hpp>
    #include<opencv2/videoio.hpp>
    #include<opencv2/highgui.hpp>
    using namespace cv;
    int main(void) {
    	Mat img = imread("Lenna.png");
    	imshow("img", img);
    	waitKey(0);
    	return 0;
    }

    레나 사진이 뜨면 성공!

    2. OpenCV개요

    cpu특화 명령어 지원

    CUDA와 OpenCL을 통한 GPU활용을 지원

    3. OpenCV함수

    • imread() : 이미지 파일 읽어오기
    • imwrite() : 이미지 파일로 저장 ex)imwrite("이미지이름.확장자",객체);
    • empty()
    • namedWindow() : 윈도우창띄우기

    4. 기본 자료형 클래스 

    • Point_ 클래스 : 좌표 
    • Size_ 클래스
    • Rect_ 클래스
    • RotatedRect 클래스 : 회전된 사각형을 표현하는 클래스 반시계방향으로 돌아감

    5. Mat클래스

    //ROI : region of interest(관심영역)

    int main(void) {
    	Mat img1 = imread("Lenna.png");
    	Mat img2 = img1(Rect(10, 10, 50, 50));
    	Mat img3 = img1(Rect(80, 20, 10, 10)).clone(); //deepcopy
    
    	img2 = ~img2;
    	img3 = ~img3;
    
    	imshow("img1", img1);
    	imshow("img2", img2);
    	imshow("img3", img3);
    	waitKey();
    	destroyAllWindows();
    
    	return 0;
    }

    img2는 얕은 복사를 해서 원본 이미지(img1)에 영향O

    img3는 깊은 복사를 해서 원본 이미지(img1)에 영향X

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    //동영상
    #include <stdio.h>
    #include<iostream>
    #include<opencv2/imgcodecs.hpp>
    #include<opencv2/videoio.hpp>
    #include<opencv2/highgui.hpp>
    using namespace cv;
    
    int main(void) {
    	VideoCapture cap(0);
    	while (1) {
    		Mat frame;
    		cap >> frame;
    		imshow("asdf", frame);
    		char key = waitKey(1);
    		if (key == 'q') {
    			break;
    		}
    	}
    	return 0;
    }

     

    '교육 > 서울 ICT 이노베이션 고오급 시각과정' 카테고리의 다른 글

    Day9  (0) 2021.06.16
    Day8  (0) 2021.05.14
    Day7  (0) 2021.05.14
    Day6  (0) 2021.05.13
    Day5  (0) 2021.05.11

    댓글

Designed by Tistory.