전체 글 21

c언어/c++ 속도 최적화 메디안필터

안녕하세요 업글입니다! 이번 포스팅에서는 속도 최적화한 메디안필터에 대해서 설명드리겠습니다. 메디안 필터에 대한 설명 메디안 필터에 대해서 잘 모르시는 분은 아래의 메디안필터 포스팅을 통해서 메디안필터에 대한 상세 설명을 확인하실수 있습니다. 2020/12/14 - [분류 전체보기] - c언어/c++ 메디안필터 c언어/c++ 메디안필터 안녕하세요 업글입니다! 이번 포스팅에서는 메디안 필터에 대해서 설명드리겠습니다. 메디안필터에 대한 설명 메디안필터는 데이터가 있을 때 데이터의 실제 값을 보다 정확하게 추정하기 위 elevate-yourself.tistory.com 속도 최적화 메디안 필터에 대한 설명 일반적인 메디안 필터의 경우 메디안 필터 구간에 속하는 데이터들에 대해 정렬을 한 후 가운데에 위치하는 ..

프로그래밍 2020.12.16

c언어/c++ 메디안필터

안녕하세요 업글입니다! 이번 포스팅에서는 메디안 필터에 대해서 설명드리겠습니다. 메디안필터에 대한 설명 메디안필터는 데이터가 있을 때 데이터의 실제 값을 보다 정확하게 추정하기 위해서 사용됩니다. 신호는 실제 값에 노이즈들이 포함된 값을 가지게됩니다. 여기에서 노이즈들을 최대한 제거하고 신호의 실제 값을 획득하기위해서 사용되는필터입니다. 메디안필터는 주로 영상처리에서 많이 사용되지만 이번포스팅에서는 일반적인 신호처리 관점에서 설명드리겠습니다. 영상처리와 신호처리 둘다 개념은 동일함으로 이번포스팅으로 메디안필터에 대해서 이해하시면 영상처리의 응용에서도 쉽게 이해하실 수 있을거라 생각합니다. 이전 이동평균필터 포스팅에서 이동평균필터가 신호의 실제 값을 비슷하게 추정하는 것을 확인하실 수 있었습니다. 메디안필..

프로그래밍 2020.12.14

c언어/c++ 이동평균필터

안녕하세요 업글입니다! 이번에는 이동평균필터에 대해서 설명드리겠습니다. 이동평균필터는 이동평균필터 외에도 이동평균법, Moving Average 등으로 표현되곤합니다. 이동평균필터에 대한 설명 이동평균필터란 아래의 그림과 같이 구간을 이동시키면서 구간에 있는 값들의 평균값을 구하여 실제값을 보다 정확하게 추정하는필터입니다. 여기서 이동평균필터 구간의 크기는 3이고 구간을 1개씩 이동시켜가며 평균값을 구하게됩니다. 아래의 그림에서는 처음 60,48,53의 평균을 구하고 다음 1개 이동하여 48,53,59의 평균을 구하고 그다음 1개씩 이동시켜가면서 평균값들을 구하게 됩니다. 이동평균필터의 사용 예시 이동평균필터의 경우 어떠한 입력 값을 읽어올 때 보다 정확한 값을 추정하기 위해서 사용하게됩니다. 저의 경우..

프로그래밍 2020.12.13

c언어/c++ 함수포인터

안녕하세요 업글입니다! 함수포인터에 대해서 포스팅 해보겠습니다. 함수포인터는 이름에서부터 알 수 있듯이 함수의 주소를 가르키는 포인터입니다. 여기서 함수도 주소가 있을까하는 의문이 드시는분도 있으실 겁니다. 함수는 메모리의 코드영역에 위치하기 때문에 변수와 같이 주소를 가지게 됩니다. 저의 경우 대체적으로 함수포인터가 가르키는 함수를 호출하는 간단한 예제(특히 더하기, 빼기, 곱하기, 나누기 예제)를 통해서 함수포인터의 문법에 대해서만 설명하는 책들을 많이 봤었습니다. 반면에 함수포인터를 어떤 경우에 유용하게 사용할 수 있는지에 관한 내용은 본 적이 크게 없는 것 같습니다. 개인적인 생각으로는 문법에 대해서 이해해도 사용하지 않으면 문법에 대한 이해는 쓸모없다고 생각합니다. 이번 포스팅에서는 함수포인터가..

프로그래밍 2020.11.26

c언어/c++ sizeof

안녕하세요 업글입니다. 이번에는 sizeof 연산자에 대해서 포스팅해보겠습니다. sizeof 연산자는 바이트 단위로 크기를 반환해주는 연산자입니다. 예를 들어서 32bit 시스템에서 sizeof(int)는 4를 반환하게 됩니다. sizeof가 전처리기에서 치환되는지 컴파일 타임에 치환되는지 런타임에 치환되는지 정확히 모르시고 착각하시는 분들이 간혹 있으신 거 같습니다. 결론부터 말씀드리자면 sizeof 연산자는 컴파일 시간에 치환되게 됩니다. sizeof가 런타임에 치환되는지 착각하고 sizeof 중복을 줄이기 위해 아래의 예제와 같이 사용하는 경우를 봤었습니다. 예제. #define COUNT_OF(arr) (sizeof(arr)/sizeof(arr[0])) int main() { int arr[10]..

프로그래밍 2020.11.12

쓰레드(Thread)에 대한 생각

안녕하세요 업글입니다. 이번에는 Thread에 대해서 포스팅 해보겠습니다. Thread에 대한 기본적인 내용을 모르시는 분은 구글링을 통해서 이해하신 후 읽으시는 것을 추천드립니다. 많은 분들이 아시는 것처럼 Thread란 프로그램 내에서 실행되는 최소 단위입니다. 프로그램은 최소 1개 이상의 Thread로 구성됩니다. 이번 포스팅에서는 멀티 Thread에 대한 생각을 중점적으로 다루어보고자 합니다. 멀티 Thread를 사용하면 좋을까 안좋을까에 대해서 어떻게 생각하시나요. 제가 생각하는 멀티 Thread의 장단점은 아래와 같습니다. 멀티 Thread의 장점은 병렬처리가 가능하다. 멀티 Thread의 단점은 구현이 복잡해지고 디버깅이 어렵다. 특히나 멀티 Thread를 사용하는 경우 동기화 즉, 공유메모..

프로그래밍 2020.11.12

c언어/c++ int 크기

안녕하세요 업글입니다. 이번에는 c언어에서 int 크기에 대해서 포스팅 해보겠습니다. 신입사원 시절 선배가 int의 크기가 몇이냐고 물어봤을 때 고민없이 4라고 대답한 적이 있었습니다. 이 때, stm32계열의 mcu를 사용하고 있었으므로 sizeof(int)를 했을 때 4로 출력이 되었고 stm32 mcu에서 int의 크기는 4가 맞았었습니다. 지금 시점에서 제가 생각하는 적절한 대답은 "시스템에 따라서 달라진다. 예를 들어서 32bit시스템에서는 4바이트이다" 입니다. 간혹 OS에 따라서 달라진다라고 대답하는 사람들이 있습니다. 이 대답도 틀린말은 아니지만 OS가 탑재되지 않은 CPU도 있기 때문에 완전히 맞다고 볼수는 없을 것 같습니다. int가 시스템에 따라 다른 이유는 int는 CPU에서는 wo..

프로그래밍 2020.11.11

c언어/c++ const

안녕하세요 업글입니다. c언어 const에 대한 팁을 공유드립니다. const 키워드는 상수로 선언하는 키워드입니다. 예제. const int a = 5; a = 3; // 컴파일러 에러 위의 예제에서 보는 것처럼 const 키워드 사용 시 상수로 선언되기 때문에 선언 이후에 값을 변화시키려고 하는 경우 컴파일러에서 에러가 나기 때문에 변화 시킬 수 없습니다.const에 대한 간단한 내용은 여기까지입니다. const 키워드는 함수의 인자로 유용하게 사용할 수 있습니다.함수 내부에서 함수의 인자 값을 읽어서 사용하기만 하고 변화되지 않는 경우 유용하게 사용할 수 있습니다. 예제. const 미사용 int Add(int a, int b){ int result; result = a + b; return res..

프로그래밍 2020.10.21

주석에 대한 생각

안녕하세요 업글입니다. 주석에 대한 저의 의견을 작성해보고자 합니다. 회사 선배에게 주석이 많으면 좋을까? 적으면 좋을까?라는 질문을 받은적이 있습니다. 저는 당시 주석을 꼼꼼하게 많이 다는 것이 좋다라고 대답하였습니다. 회사 선배의 의견을 저의 의견과 반대로 주석이 없는 코드가 가장 좋은 코드라고 답했었습니다. 코드만 보고도 가독성이 좋아서 바로 이해할 수 있는 코드는 주석이 필요 없다라는 의견이었습니다. 당시 완전 공감할 수는 없었지만 공감이 되는 부분도 있었습니다. 저와 같이 공감하시는 분도 계실 것이고 공감을 못하시는 분도 계실 것이라 생각됩니다. 현재 제가 주석을 다는 몇가지 방법이 있습니다. 첫번째, 최대한 주석 없이 이해할 수 있도록 변수, 함수명을 잘 정해야 한다. 예를 들어서 클라이언트와..

프로그래밍 2020.10.19

c언어/c++ static

안녕하세요 업글입니다. c언어 static 키워드에 대해서 설명드리겠습니다. 기초적인 문법에 대한 내용이 아닌 어떤 장점이 있는지에 대해 중점적으로 설명드리겠습니다. c언어 static 키워드의 기초 개념에 안다고 가정하고 설명드리니 모르시는 분은 구글링을 통해서 기초 개념에 대해서 공부하신 후 읽어보는 것을 추천드립니다. static은 정보은닉을 위해 사용됩니다. 여기서 정보은닉이란 c언어가 아닌 주로 객체지향의 특징으로 설명하는 것을 많이 보셨을거라 생각됩니다. 객체지향에서 정보은닉이란 변수나 함수를 객체 내부에서만 사용하는 것입니다. c언어 관점에서 보면 변수나 함수를 일정 범위(함수 or 파일)에서만 사용하는 것입니다. c언어에서 static은 크게 3가지 경우에 사용할 수 있습니다. 첫번째, 지..

프로그래밍 2020.10.19