#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;
}
OpenCV에서 지원하는 모든 기능을 포함합니다. 단 컴파일 타임이 느려질 수 있어 아래처럼 사용합니다.
기본 데이터 타입이 선언되있음. Mat 이나 Point가 선언됨. 그와 관련된 행렬 연산 혹은 벡터 연산이 제공됨. Mat은 이미지를 담을 객체이다. 행렬 구성.
윈도우 화면, UI처리(슬라이더, 버튼 등) 및 마우스 제어 가능
기본 이미지 코덱이 들어있다 -> 영상 장비에서 촬영한 영상 파일이 너무 큰 것을 작게 만들거나, 즉 압축하거나 푸는 것을 코덱이라 한다.
비디오 추적 및 배경 segmentation과 관련된 루틴을 포함합니다.
image processing을 위한 다양한 기능을 포함합니다.
객체 detection을 위한 기능을 포함합니다.
카메라 켈리브레이션 및 3D reconstruction기능을 포함합니다.
머신러닝 알고리즘을 포함합니다.
2차원 이미지의 feature detection 기능을 포함합니다.
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