Loading...

[GP] C++에서 Map에 대해 알아보자

이 글은 N.K Dev Lab에서 작성된 글입니다. 안녕하세요. 오늘은 C++ STL에 대한 글을 써보려 합니다. 본래 저는 STL과 같은 기본적인 글은 잘 쓰지 않으려 했습니다. 워낙 Documentation도 잘 되어 있는 편이고, 블로그의 글 주제로 쓰기에는 적합하지 않다고 생각했습니다. 하지만 오늘 이 글을 쓰게 된 계기는 제가 알고리즘 풀이를 몇 번 진행하면서 제가 주로 쓰고 있는 Java 언어와 다소 차이가 있는 것으로 확인이 된 자료구조가 몇 있었습니다. 그래서 각 언어에서 비슷한 자료구조의 형태가 STL이나 API로 지원된다하더라도 언어에 따라 사용하는 방법이나 각 함수들에 대한 기능에 대해서는 짚고 넘어가야 할 필요가 있다고 느꼈습니다. What is STL ?STL은 C++에서 제공하는..

[GP] C++ 언어에서 MQTT 사용해보기

이 글은 N.K Dev lab의 내용 중 일부를 담아온 것입니다. 오늘은 지난 포스트에 이어서, 프로그래밍 언어를 활용한 MQTT 사용에 대해 적어보고자 합니다. 오늘은 C++ 언어를 사용해보도록 하죠. libmosquitto C++ 언어에서 사용할 MQTT 라이브러리로 libmosquitto를 사용하려 합니다. 그럼 libmosquitto 라이브러리를 설치해야겠죠? 그럼 설치부터 시작해보겠습니다. $ sudo apt install libmosquitto 우분투 리눅스에서는 기본적으로 레포지터리에서 제공하는 libmosquitto 패키지가 있습니다. 해당 패키지를 사용해서 libmosquitto를 쉽게 설치해보실 수 있습니다. 윈도우 운영체제에서는 아래의 버튼을 클릭하셔서 설치하실 수 있습니다. Wind..

[GP] Unix Thread의 기본을 다져보자

이 글은 저의 Github Page의 내용 중 일부를 담아온 것입니다. 개발 글을 써온지 벌써 4개월이 지났지만, 학교 생활과 성적 관리 등으로 인해 컨텐츠가 많이 부족하여 이리저리 생각해 본 결과, 이 개발 블로그에 제가 알고 있는 모든 개발 지식들을 올리려고 합니다. 물론 용도는 여러 가지가 있겠지만, 주 용도는 사람의 기본적인 특성인 망각 특성 때문이겠죠? ㅎㅎ 오늘은 Unix Programming에 대한 카테고리를 새로 추가하여, pthread부터 시작해보려 합니다. 왜 쓰레드부터 시작하냐고요? 그렇군요. 올해는 유난히 제 프로젝트, 과제 등에서 모두 쓰레드를 사용했기 떄문이라고 이야기 하고 싶네요.. 이 글을 읽어보시기 전에, Thread에 대한 기초적인 개념이 숙지된 상황에서 읽기를 권장합니다..

[GP] Boost Library 설치와 사용

이 글은 저의 Github Page의 내용 중 일부를 담아온 것입니다. 음 생각해보니, CMake에 관한 포스트를 Tistory에 게시를 해버렸네요. 이 개발자 페이지에 신경을 썼음에도 불구하고, 아무래도 아직 Tistory 블로그는 잊혀지지 않았나 봅니다. (다음에는 개발 포스트를 반드시 여기에 게시하도록 할게요 ㅠㅠ) 최근 저는 C++ 언어에 다시 몰두하기 시작했습니다. 작년까지는 학부 수업에서 두 개 이상 Java 언어로 수업을 받았었(?)... 사실 OpenCV는 C++ 언어로 진행하긴 했습니다만 Java 언어로 수업받았던 두 과목이 프로젝트로 진행되는 과목이어서 어쩌다보니 Java에 몰두하게 되어버렸습니다. 다시 C++ 언어를 시작하려니 너무 어려운게 익숙하지가 않아 블로그에 조금 정리해보려 합..

2017.03.04 16:21

CMake를 이용한 C/C++ 프로젝트 빌드

Makefile이라는 것을 한 번 쯤은 다들 들어보셨을 것이라 생각합니다. Visual Studio IDE 도구를 이용하면 Makefile을 오히려 보기 힘들 수 있겠지만, Unix, Linux에서 C, C++ 프로그래밍을 하셨다거나 크로스 플랫폼으로 프로그래밍을 하신 분들이라면, 한 번 쯤은 다들 접해보셨을 것입니다. Makefile이 포스트는 CMake에 대한 포스트이지만, 그 전에 Makefile이란 것에 대해서 몇 가지 적어보고자 합니다. 혹시 저의 블로그에서 OpenCV 설치와 관련된 포스트를 보신 분이라면, 아마 이런 내용을 보셨을 것입니다. $ make -j $(nproc) $ sudo make install여기서 중점적인 커맨드는 make 명령어입니다. 사실 make 명령어가 들어간 .sh..

2017.03.01 12:58

[GP] OpenCV Trackbar 주무르기

이 글은 저의 Github Page의 내용 중 일부를 담아온 것입니다. 안녕하세요. 새로운 블로그에 저도 모르게 상쾌한 기분이군요. 오늘은 Tistory 블로그에 이어서, 계속 OpenCV 코드 카테고리 글 작성을 계속하려 합니다. TrackbarOpenCV에는 Trackbar라는 컴포넌트가 존재합니다. (사실 컴포넌트라고 하기에는 조금 흠이 있지만…) 여러분이 원하는 영상을 마우스의 드래그만으로 형상을 변화시킬 수 있도록 하는 것이지요. 말씀만으로는 설명이 어렵기 때문에 간단한 예시를 보며 설명을 드리겠습니다. 위 사진은 Trackbar를 움직여서 가운데에 원을 그려놓고 그 크기를 점점 늘리고 줄이고 할 수 있는 이미지입니다. 간단한 소스 코드를 공개해보도록 하겠습니다. 이어서 읽으시려면 아래의 버튼을..

2017.01.26 11:02

chkmd5 (파일 MD5 해시값 가져오는 프로그램, only Windows OS)

오늘은 간단한 명령어를 한 개 만들어봤습니다.파일의 경로를 인자로 받아, MD5 해시값을 가져오는 프로그램인데요. 명령어 사용은 간단합니다. 명령어 이름(프로그램 이름)을 입력한 후, 원하는 파일 혹은 경로를 입력하면, 해당 파일의 MD5 값을 출력해줍니다. 폴더나 없는 파일명을 입력하는 경우, 5번 오류를 나타내줍니다. Visual C++로 개발C#으로 개발하면 간단하게 나올 수 있겠지만, 저는 C++로 한 번 개발해봤는데요.Windows에서 파일의 해시값을 가져오려면 써드 파티 프로그램을 사용해야 합니다. (제가 알기로, 아마 기본 명령어가 없는줄....) 그렇다보니 그냥 커맨드로 간단하게 알아볼 수 있는 프로그램을 생각해보다가 재미로 만들어보고, 블로그에 올리게 되었습니다. Win32 API 등 W..

2017.01.21 14:27

OpenCV에서 KeyEvent를 사용해보자.

OpenCV 3번째 포스트입니다. OpenCV 포스트를 안쓴지도 꽤 오래되었네요. ^^; 이번 포스트에서는 영상에 KeyEvent를 넣어 효과를 추가하거나 이벤트를 넣어보는 실습을 한 번 해보고자 합니다. waitKey 함수지난 포스트도, 처음에 했던 포스트에서도, 영상을 띄우고, 사용자의 입력을 기다리기 위해, 우리는 여태까지 waitKey 함수를 사용했습니다. 아마 조금 눈치가 있으신 분들이라면, 영상에 키보드 이벤트를 줄 때도 이 함수를 모태로 나갈 것이라는 예측을 하지 않았을까 생각해보는데요. 맞습니다. waitKey 함수에는 인자값으로 int 형태의 값을 넣고, 그 값을 다시 int 형으로 반환합니다. 그렇다면 인자로 주는 int 형 값은 무엇이고, 어떤 값을 되돌려 받는 것일까요? int wa..

System Call Function VS Library Call Function

오늘 포스트는 개발자로써 반드시 짚고 넘어가야할 부분 중에 하나를 써보고자 합니다. 함수의 사용우리는 콘솔 화면에 어떤 문자열을 출력하거나 파일에 입출력을 한다거나 문자열을 입력받게 하고 싶을 때 각각 사용하는 함수를 사용을 합니다. 그래서 그 함수가 구현되어 있는대로 인자값을 넣고, 그 인자값을 넣은대로 코딩을 하면 출력 결과가 나오게 됩니다. 그런데, 이 함수에도 두 가지의 존재로 나뉩니다. 가령 예를 들어보자면.... 이런 코드가 있습니다. 위 코드는 만약 파일이 존재하지 않으면 오류를 나타내고, 프로그램을 종료하고 있습니다. 동시에 오류 코드를 출력하고 있죠. 다른 소스 코드를 한 번 보겠습니다. 이 코드도 역시 파일을 찾아서 읽고, 해당 파일의 내용을 출력하는 소스 코드이죠. 분명 하는 일은 같..

2016.12.18 11:27

OpenCV에서 Mouse Event를 사용해보자

저에게 맡겨진 3개의 프로젝트와 기말고사가 드디어 끝이났네요. 이런저런 일들이 많았지만 그렇다보니 블로그 포스팅에 대해 소홀해지게 되었는데요. 오늘은 지난 포스트에 이어서 OpenCV를 이용한 포스트를 작성해보고자 합니다. 모든 코딩에 있어서 MouseEvent는 많이 보셨을 것입니다. 버튼 액션, 이벤트 이런 것 많이 보셨을 것이라 생각됩니다. 그런데, 영상 처리에서 마우스 이벤트는 어떤 용도로 쓰일까요? 여러분들이 어떤 영상을 만들거나 아니면 만들어진 영상을 IplImage나 Mat 클래스를 사용해 불러오게 되면, 해당 영상에서 픽셀이 몇인지 궁금할 때가 있습니다. cout으로 Pixel 값을 확인할 수도 있지만, 픽셀 수 따라 엄청나게 많은 양을 출력할 수도 있고, 자신이 원하는 부분을 찝어서 코딩..