분류 전체보기
-
Git & Github CLI설치 및 사용법(Ubuntu 22.04)Tools/Git 2023. 12. 27. 16:00
OS: ubuntu 22.04 - Git 설치 1. Terminal 실행 2. 다음 명령어 순차적으로 입력 $ sudo apt update -y && sudo apt upgrade -y $ sudo apt install -y curl $ sudo apt install git 3. 설치가 완료되었는지 확인하려면 다음 명령어 입력하여 버전 확인. $ git --version 결과 - Github CLI Github CLI는 터미널 상에 로그인을 해두면, private repository의 commit, clone, pull request관리 등을 가능하게 해주는 역할을 한다. https://cli.github.com/ GitHub CLI Take GitHub to the command line cli.git..
-
OpenCV 유용한 함수OpenCV/OpenCV_C++ 2023. 12. 21. 21:29
1. 행렬 합, 평균, 최댓값, 최솟값 - 합(sum) Scalar sum(InputArray src); src: 입력 행렬, 1 ~ 4 channel return: 행렬 원소들의 합 예제 #include #include "opencv2/opencv.hpp" int main() { uchar data[]{ 1, 2, 3, 4, 5, 6 }; cv::Mat mat{ 2, 3, CV_8UC1, data }; int sum = static_cast(cv::sum(mat)[0]); std::cout
-
OpenCV Draw & EventOpenCV/OpenCV_C++ 2023. 12. 14. 20:34
OpenCV Draw OpenCV에서는 그리기 함수를 제공한다. 선, 도형등을 그릴수 있으며, 문자열도 출력이 가능하다. 그리기 방식 세부 그리기 방식 함수 이름 선 그리기 직선 그리기 line() 화살표 그리기 arrowedLine() 마커 그리기 drawMarker() 도형 그리기 사각형 그리기 rectangle() 원 그리기 circle() 타원 그리기 ellipse() 다각형 그리기 polylines(), fillPoly() 문자열 출력하기 문자열 출력하기 putText() 출력 문자열의 크기 계산 getTextSize() 참고: OpenCV documentation 1. 선 그리기 - 직선 그리기 void line(InputOutputArray img, Point pt1, Point pt2, c..
-
OpenCV VideoCapture classOpenCV/OpenCV_C++ 2023. 12. 13. 22:06
OpenCV에서 카메라와 동영상으로부터 프레임(Frame)을 받아오는 작업을 VidepCapture class 하나로 처리할 수 있다. 카메라와 동영상을 여는 작업이 수행되면, 매 프레임을 받아오는 작업을 수행한다. - 카메라 열기 VideoCapture::VideoCapture(int index, int apiPreference = CAP_ANY); bool VideoCapture::open(int index, int apiPreference = CAP_ANY); index: 사용할 캡쳐 장치의 ID (camera_id, domain_offset_id). 시스템 기본 카메라는 0으로 지정됨.(여러대의 카메라는 0부터 순서대로 지정) apiPreference: 선호하는 카메라 처리 방법을 지정. retu..
-
OpenCV Mat class 기초 사용법OpenCV/OpenCV_C++ 2023. 12. 12. 17:33
OpenCV에서 Mat은 자주 사용되며 행렬과 연관이 깊은 클래스이다. https://mokchanic.tistory.com/91 OpenCV 주요 클래스 1. Point, Size, Rect Class - Point Class 2차원 점의 좌표 표현을 위한 템플릿 클래스 멤버 변수: x, y 멤버 함수: dot(), ddot(), cross(), inside() 등 다양한 사칙 연산에 대해 연산자 오버로딩과 std::cout 출력을 위 mokchanic.tistory.com 이번에는 예제를 직접 실행하며 Mat class에 대해 알아보자. Example 1. 객체 생성 및 초기화 void MatOp1() { cv::Mat img1; // empty cv::Matrix cv::Mat img2(480, 6..
-
SLAM 개요SLAM 2023. 12. 1. 21:44
1. SLAM? SLAM은 Simultaneous Localization and Mapping이다. 직역하면 동시적 위치 추정 및 지도작성이다. Simultaneous: 동시적 Localization: 위치추정 and: 및 Mapping: 지도작성 SLAM은 원래 로봇기술부터 시작을 했다. Estimates its motion: 로봇은 움직이기 때문에 자기 자신의 위치가 필요하다. Builds a model of its surroundings: 로봇이 움직여서 주변 환경이 변하기 때문에 주변 환경 모델을 구축해야한다. Using a specifc sensor: 센서를 통해 주변 환경 정보를 얻어야한다. Without a priori information: 사전 정보 없이 자신의 위치와 지도 작성을 해야 ..
-
Computer Vision & Visual-SLAMSLAM 2023. 11. 30. 19:56
1. Computer Vision Computer Vision은 이미지 인식기술이 발달하면서 영상 인식기술도 함께 발전을 하였다. YOLO와 같은 Object Detection 기술부터 Semantic Segmentation기술등 다양한 인식 기술이 나오게 되었다. 이와 같은 기술들은 Convolutional Neural Network와 같은 딥러닝 신경망으로 학습이 되었다. 2D상의 객체를 인식하는 방법은 어느정도 정복하였지만, 3D 세상을 2D 이미지 및 영상에서 이해하기는 쉽지 않다. 우리가 사진을 찍을때 3D world의 depth data는 소실되기 때문이다. (한 장의 사진으로는 3D 세상을 이해할 수 없다.) 하지만, 여러 개의 2D 이미지를 사용하여 기하학적인 방법으로 복원된 depth d..