OpenCV C++ basic_1 기본 헤더 이해

최준혁·2021년 6월 18일

OpenCV_Basic

목록 보기
1/4

OpenCV Basic Function Learning

#include <opencv2/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/imgproc.hpp>
#include <iostream>

using namespace std;
using namespace cv;

int main(int argc, char** argv)
{
  Mat origin, gray, blur; // 객체 생성. Mat 이라는 단위를 쓰는데, 행렬을 의미한다.
  if(argc > 1)
  {
  	imageName = argv[1];
  }
  
  
  origin = imread(samples::findFile(imageName), IMREAD_COLOR); // 이미지를 읽어 올 때 어떻게 읽어 오겠는지, cv::samples 안의 이미지를 COLOR로 읽어오겠다는 것.
  if( image.empty()) // 이미지 제대로 읽어 오는지 확인하기!
  {
  	cout<<"empty!!"<<endl;
    return -1; 
  }
  
  imshow("Display Window", origin); // 이미지를 보이는 것. 나중에 FPS만 확인하고 끌듯 
  cvtColor(origin, gray, COLOR_BGR2GRAY);
  GaussianBlur(gray, blur, Size(3,3), 3, 0);
  waitKey(0); // 윈도우 끄려면 아무거나 누르시오 
  return 0;
}

기본 헤더파일 설명

<opencv2/opencv.hpp>

OpenCV에서 지원하는 모든 기능을 포함합니다. 단 컴파일 타임이 느려질 수 있어 아래처럼 사용합니다.

<opencv2/core.hpp>

기본 데이터 타입이 선언되있음. Mat 이나 Point가 선언됨. 그와 관련된 행렬 연산 혹은 벡터 연산이 제공됨. Mat은 이미지를 담을 객체이다. 행렬 구성.

<opencv2/highgui.hpp>

윈도우 화면, UI처리(슬라이더, 버튼 등) 및 마우스 제어 가능

<opencv2/imgcodecs.hpp>

기본 이미지 코덱이 들어있다 -> 영상 장비에서 촬영한 영상 파일이 너무 큰 것을 작게 만들거나, 즉 압축하거나 푸는 것을 코덱이라 한다.

<opencv2/video.hpp> or <~/video/video.hpp>

비디오 추적 및 배경 segmentation과 관련된 루틴을 포함합니다.

<opencv2/imgproc/imgproc.hpp>

image processing을 위한 다양한 기능을 포함합니다.

<opencv2/objdetect/objdetect.hpp>

객체 detection을 위한 기능을 포함합니다.

<opencv2/calib3d/calib3d.hpp>

카메라 켈리브레이션 및 3D reconstruction기능을 포함합니다.

<opencv2/ml/ml.hpp>

머신러닝 알고리즘을 포함합니다.

<opencv2/feature2d/geatures2d.hpp>

2차원 이미지의 feature detection 기능을 포함합니다.

OpenCV Compile 명령어

  • g++ -o simple main.cpp $(pkg-config opencv4 --libs --cflags)
  • export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

전용 makefile 만들기

CC = g++
CFLAGS = -W -Wall
SRCS = main.cpp
TARGET = simple
OPENCV := $(shell pkg-config opencv4 --libs --cflags)
LIBS = $(OPENCV)
$(TARGET):$(SRCS)
	$(CC) $(CFLAGS) -o $(TARGET) $(SRCS) $(LIBS)

clean:
	rm -f $(OBJECTS) $(TARGET) core

실행 에러

/simple: error while loading shared libraries: libopencv_highgui.so.4.5: cannot open shared object file: No such file or directory

env | grep LD_LIBRARY_PATH
# 환경 변수 경로 중 /usr/local/lib 이 있는지 확인 필수 없으면 아래 명령어 삽입
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
profile
3D Vision, VSLAM, Robotics, Deep_Learning

0개의 댓글