728x90

C++ 14

[C/C++] main 함수

서론 안녕하세요, 오늘은 C/C++ 로 프로그램을 할 때 제일 처음 만나게 되는 main 함수에 대한 주제를 정리해보겠습니다. 저도 사실은 main 함수에 대해서는 그 전에는 단지 코드 상에서 실행시키게 되면 제일 처음 실행하는 함수 이정로 알고 있었고 깊게는 나아가지 않았습니다. 예전에 배치 파일을 사용하면서 main 함수에 대해서 공부해야겠다.. 생각만 하고 까먹고 넘어갔었는데 오랜만에 생각나서 이렇게 공부해서 정리하게 되었습니다. 자료는 IBM Docs 자료를 참고하였습니다. IBM Docs - IBM Documentation main 함수의 실행 프로그램이 실행될 때 시스템은 main 함수를 호출하게 됩니다. 이처럼 우리는 프로그래밍을 하면서 코드에서 main 함수가 제일 먼저 실행된다는 것을 아..

C && C++ 2022.01.25

동영상 캡쳐 프로그램 (C++/Opencv)

안녕하세요 오늘은 제가 동영상 캡쳐 프로그램을 보여드리도록 하겠습니다. 0.간단한 설명 프로그램은 C++와 Opencv를 이용해서 제작하였습니다. 프로그램은 지정된 동영상 파일들을 재생시키고 사용자가 동영상을 확인하면서 이미지 형태로 영상을 캡쳐할 수 있도록 해줍니다. 소스코드 또한 글 맨뒤에 포함하겠습니다. Opencv 설치법은 아래 링크에서 보실 수 있습니다. OpenCV 설치하기(C++) (tistory.com) OpenCV 설치하기(C++) 안녕하십니까, 힘법사입니다. 오늘은 OpenCV 설치법에 대해서 알아보도록 하겠습니다! 1. 설치 파일 다운로드 Releases - OpenCV Releases - OpenCV Become a Member Stay up to date on OpenCV and ..

C && C++ 2022.01.06

[C++] Adaptive Huffman Coding(적응형 허프만 코딩)

안녕하십니까, 힘법사입니다. 이번 글은 적응형 허프만 코딩에 대한 글입니다. 직접 게시물과 마찬가지로 제가 보고서를 작성하면서 만든 코드와 보고서 내용을 통해 게시물을 작성했습니다! 해당 내용은 굉장히 이론 자체는 쉬웠는데 솔직히 구현하는데 8시간 정도 들만큼 조금 애를 먹은 것 같습니다... 하지만 어떻게든 만들어 내니 뿌듯하네요 ㅎㅎ 아쉬운 점은 Node 구조체에 제가 탐색의 편의를 위해서 부모 노드의 주소를 가지고 있는 포인터 변수를 하나 넣었는데 이거 말고 노드의 번호를 넣어서 구현했으면 어떗을까 조금 아쉽네요(유튜브를 보니 전부 노드의 번호를 이용해주더라고요) 먼저 코드 주소부터 올리겠습니다. 파일은 간단하게 헤더파일 하나가 올라가있습니다. 2017103030/Adaptive-Huffman-Co..

C && C++ 2021.11.10

[C++] DCT / IDCT / Quantization / De-Quantization 코드

안녕하십니까 힘법사입니다. 오늘은 JPEG 압축 과정 중 하나로 들어가는 DCT, IDCT, Quantization, De-Quantization에 대한 내용을 설명드리도록 하겠습니다. 사실 제가 실감미디어시스템이라는 학교 수업을 들으면서 진행한 내용인데, 코드 작성과 보고서 둘다 진행하게 되어 이렇게 공유하게 되었습니다. 내용은 보고서 내용을 그냥 그대로 올려봤고요 이미지에 대한 DCT과정이 동작되는 코드는 아닌 오직 8x8 마크로 블록에만 적용되도록 만든 코드입니다. 많이 어려운 내용은 아니니 따라오시면 이해하실 수 있을겁니다~! 먼저 코드 링크부터 걸겠습니다. 2017103030/DCT: DCT, IDCT, Quantization, DeQuantization operation code (github..

C && C++ 2021.11.10

[C++] Arithmetic Coding(2) - Decode

[C++] Arithmetic Coding(산술 부호화) (tistory.com) [C++] Arithmetic Coding(산술 부호화) 안녕하세요 힘법사입니다. 오늘은 제가 Arithmetic Coding에 대해서 대학 강의를 들으면서 이를 C++로 구현해보면 재미있을 것 같아 만든 해당 내용에 대해서 공유하겠습니다. Arithmetic coding Arithmetic co himbopsa.tistory.com 안녕하세요 이번 게시물은 제가 지난 게시물에서 말씀드린 산술 부호화(Arithmetic Coding)의 Decoding 과정에 대해서 이야기 드리겠습니다. 이 과정에 대해서 제대로 이해하고 싶으신 분은 위의 링크부터 보시면 되시겠습니다. 자. 보셨나요? 그럼 가겠습니다. 우선 이 Encodin..

카테고리 없음 2021.11.02

[C++] Arithmetic Coding(산술 부호화)

안녕하세요 힘법사입니다. 오늘은 제가 Arithmetic Coding에 대해서 대학 강의를 들으면서 이를 C++로 구현해보면 재미있을 것 같아 만든 해당 내용에 대해서 공유하겠습니다. Arithmetic coding Arithmetic coding은 전체 메시지를 하나의 유닛으로 취급할 수 있게 해 줍니다. 정확히는 실수 하나로 전체 메시지를 나타낼 수 있게 해 줍니다. 그리고 압축 시 손실이 없는 Lossless 방식입니다. 해당 게시물에서는 Encoding만 다룰 것이고 제가 시간이 허락한다면 Decoding도 만들어 보겠습니다. step1 우선 사전에 심볼들에 대해서 확률을 알고 있어야 합니다. 제가 예를 들어보겠습니다. 저는 심볼 A B 그리고 C의 조합으로 메시지를 전송하고자 합니다. 이때 A의..

C && C++ 2021.10.12

[C++] Functor / 함수자

Functor Functor는 우리나라말로 함수자라 불립니다. Functor는 객체지만 함수처럼 동작하고 ()연산자에 의해서 정의됩니다. () 연산자를 정의하는 내용은 제 이전 글에 정리되어있습니다. [C++] 연산자 오버로딩 (tistory.com) [C++] 연산자 오버로딩 안녕하세요, 힘법사입니다. 제가 4학년이 되면서 요즘 글을 쓸 시간이 없었네요... 이제 제가 전자공학으로 졸업을 앞두고 있습니다. 이제 자기소개서도 쓰고 하다보니, 제가 많이 했다고 생 himbopsa.tistory.com Functor의 장점은 어찌되었든 이는 함수가 아닌 객체이기 때문에 연산자()를 제외한 다른 멤버 함수와 멤버 변수들을 가질 수 있습니다. 예제 예제로 행렬 곱을 해주는 Functor를 구현해보도록 하겠습니다..

C && C++/STL 2021.10.07

[C++] 연산자 오버로딩

안녕하세요, 힘법사입니다. 제가 4학년이 되면서 요즘 글을 쓸 시간이 없었네요... 이제 제가 전자공학으로 졸업을 앞두고 있습니다. 이제 자기소개서도 쓰고 하다보니, 제가 많이 했다고 생각했지만, 컴퓨터 관련 지식이 부족하다는 생각이 드네요 앞으로 공부한 내용을 공유해볼까 합니다. 그 첫번째가 STL입니다. 저는 한빛 미디어의 "뇌를 자극하는 C++ STL"을 읽고 있습니다. 해당 Content 순서로 저도 공부한 내용을 풀어나가려 합니다. 0.연산자 오버로딩 연산자 오버로딩의 경우 저 같은 경우에는 학교에서 객체지향프로그래밍 시간에 배우고 구현한 경험이 있는 개념입니다. 이 부분에 대해서 넘어갈까 했지만, 시간이 좀 지나 저도 가물가물하여 처음부터 다시 정리하기로 마음먹었습니다. 우선 연산자 오버로딩을..

C && C++/STL 2021.10.02

OpenCV 설치하기(C++)

안녕하십니까, 힘법사입니다. 오늘은 OpenCV 설치법에 대해서 알아보도록 하겠습니다! OpenCV를 이용한 프로그래밍 예제는 아래 링크에 걸어두도록 하겠습니다. 동영상 캡쳐 프로그램 (C++/Opencv) (tistory.com) 1. 설치 파일 다운로드 Releases - OpenCV Releases - OpenCV Become a Member Stay up to date on OpenCV and Computer Vision news Join our Newsletter opencv.org 먼저 해당 페이지에 접속해 OpenCV 원하는 OpenCV 버전의 파일을 다운합니다. 저는 컴퓨터 운영체제가 Windows이기 때문에 Windows를 클릭했습니다. 그러면 해당 페이지로 넘어가게 됩니다. 여기서 기다..

C && C++ 2021.04.30

Eigen library 설치하기(C++)

1. Eigen library 다운하기 i) 다음 사이트에 접속합니다. eigen.tuxfamily.org/index.php?title=Main_Page Eigen Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms. Eigen is now on GitLab.com (30.07.2020) Since the end of 2019, Eigen's repository and bugtracker are now both hosted on GitLab.com, meaning th eigen.tuxfamily.org ii) 아래 그림의 빨간색으로 표시된 "zip"을 클..

C && C++ 2020.10.14
728x90