분류 전체보기
-
Basic_CMakeTools/CMake 2023. 12. 31. 18:23
이번에는 간단한 예제를 가지고 CMake를 구성하여 C++ 빌드를 해보려고한다. 만약 이 페이지를 처음 본다면, 아래의 기본적인 Compiler 설치와 Extentions중 Clangd를 적용하고 오는 것을 추천한다. Compiler: https://mokchanic.tistory.com/61 GCC_Clang Compiler installation (Ubuntu & Windows) Compiler installation on Ubuntu - GCC 터미널을 열어서 다음의 커맨드를 실행한다. $ sudo apt update && sudo apt upgrade -y $ sudo apt install -y build-essential # 필요한 종속성 설치 $ sudo apt install -y gcc 다음..
-
Coding Font & vscode ThemeTools/IDE 2023. 12. 27. 16:31
Coding Font는 프로그래밍을 할 때 일기 쉽고 코드의 구조를 명확하게 파악할 수 있도록 디자인된 폰트들이 존재한다. 예를 들어 알파벳 'O'와 숫자 '0'과 같은게 있다. 이를 잘 사용하면 코드의 가독성이 향상되고 효율적인 작업이 가능하다. Coding Font를 사용하는 이유는 다음과 같다. 고정폭 각 문자와 기호가 동일한 너비를 가진다. 이는 코드의 정렬 및 들여쓰기에 도움을 준다. 구분력이 있는 디자인 일부 문자들은 코드에서 혼란을 야기한다. (위에서 이야기한 알파벳 'O'와 숫자 '0') 코딩 폰트는 문자들이 명확히 구분되도록 설계되어 있다. 리간처리(Ligatures) 몇몇 코딩 폰트는 특수한 리간 처리 기능을 제공한다. 예를들어 '
-
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: 사전 정보 없이 자신의 위치와 지도 작성을 해야 ..