일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- pytorch
- 해리스 코너 검출
- 파이토치 강의 정리
- matlab 영상처리
- 딥러닝
- object detection
- 케라스 정리
- 팀프로젝트
- pytorch zero to all
- TensorFlow
- 컴퓨터 비전
- 딥러닝 스터디
- 파이토치 김성훈 교수님 강의 정리
- c언어
- 딥러닝 공부
- Pytorch Lecture
- 파이토치
- 모두의 딥러닝 예제
- 가우시안 필터링
- c++공부
- c언어 정리
- 미디언 필터링
- C언어 공부
- tensorflow 예제
- 김성훈 교수님 PyTorch
- 골빈해커
- MFC 프로그래밍
- 모두의 딥러닝
- 영상처리
- c++
- Today
- Total
목록Programming Language (50)
ComputerVision Jack
스택(Stack) 스택 스택(Stack) 또한 선형 자료구조의 일종이다. 스택은 나중에 들어간 것이 먼저 나오는 구조이다. 후입 선출 방식의 자료구조. 영어로 LIFO (Last - In First - Out) 구조의 자료구조이다. 스택의 ADT의 정의 Data를 넣는다. Data를 꺼낸다. 다시 stack 구조를 참고하며 본다. 스택은 배열을 이용해서 구현이 가능하고, 또 연결 리스트를 이용해서도 구현이 가능하다. 예제 : 배열로 스택 구현 (stack) 인덱스 0의 배열 요소는 스택의 바닥이다. 마지막에 저장된 데이터의 위치를 기억해야 한다. Push : Top을 위한 한 칸 올리고, Top이 가리키는 위치에 데이터 저장 Pop : Top이 가리키는 데이터를 반환하고, Top을 아래로 한 칸 내림 예..
원형 연결 리스트(Circular Linked List) 원형 연결 리스트 연결 리스트의 마지막 노드가 NULL을 지칭 했다면 원형 연결 리스트는 마지막 노드가 다시 첫 번째 노드를 지칭하게 한다. 따라서 순환 모형이 만들어 진다. 원형 연결 리스트에서는 머리와 꼬리 노드 구분이 없다. 유일한 차이점은 포인터 변수 head가 무엇을 지칭하는가 이다. 따라서 노드 추가 작업이 발생할 경우 끝을 찾아가는 일이 발생하기 때문에 보통 head 포인터 대신 tail 포인터를 설정하여 꼬리를 표기한다. 예제 : 원형 연결 리스트 typedef struct _CLL{ Node * tail; Node * cur; Node * before; int numOfData; } CList; #기존 코드와 다르게 head포인터가..
연결 리스트 연결 기반 리스트 연결 리스트 구현을 위해선 'malloc 함수' 와 'free 함수' 기반으로 하는 메모리의 동적 할당에 대한 이해가 필요하다. 기존 정적인 배열은 메모리의 크기에 대해서 유연하게 대처하지 못하기 때문이다. 예제 : 간단한 연결 리스트 typedef struct _node{ int data; struct _node * next; } Node; #next (구조체 변수의 주소 값을 저장하는 포인터 변수)를 사용하여 링크드 리스트를 구현한다. 이런 노드를 동적 할당을 통하여 연결한다. 필요한 주요 변수 Node * head = NULL; 리스트 머리를 가리키는 포인터 Node * tail = NULL; 리스트 꼬리를 가리키는 포인터 Node * cur = NULL; 현재의 위치..
리스트 (List) 추상 자료형(Abstract Data Type) 구체적인 기능의 완성 과정을 언급하지 않고, 순수하게 기능이 무엇인지를 나열 하는 것 자료형의 정의와 자료형에 대한 연산의 묶음을 지칭한다. 리스트 자료구조 리스트 자료구조는 데이터를 나란히 저장한다. 또한 중복된 데이터를 포함한다. 순차 리스트 : 배열을 기반으로 구현된 리스트 연결 리스트 : 메모리의 동적 할당을 기반으로 구현된 리스트 예제 : 간단한 순차 리스트 자료구조 ADT 예제 : 순차 리스트 자료구조 활용 리스트 생성 및 초기화 하고, 정수 1~9까지 저장한다 리스트에 저장된 값을 순차적으로 참조하여 그 합을 계산하여 출력하낟. 리스트에 저장된 값 중 2의 배수와 3의 배수에 해당하는 값을 삭제한다. 마지막으로 순차리스트를 ..
재귀 (ReCursion) 재귀 함수 함수 내에서 자기 자신을 다시 호출하는 함수 함수가 호출되면 자기 자신이 복사되어 실행한다고 생각하면 이해하기 편하다. 재귀 함수를 정의하는데 있어서 탈출 조건을 구성하는 것이 중요하다. 예제 : 간단한 재귀함수 예시 if (num = 1) 1 -- (n = 0) 탈출 조건으로 선택 if (n == 0) 탈출 조건을 명시한다. 예제 : 피보나치 수열 재귀함수로 구현하기 0 -- n = 1 탈출 조건 F(n) = 1 -- n = 2 탈출 조건 F(n - 1) + F(n - 2) -- 그외 식 그대로 코딩으로 구현하면 된다. 만약 좌우 재귀함수가 return으로 반환되는 경우 왼편의 Fibo함수 먼저 호출이 완료 되어야 오른쪽 Fibo 함수가 호출이된다. 그 과정을 트리..
자료 구조(Data Structure)에 대한 기본적인 이해 자료구조(Data Structure) '데이터의 저장'을 담당하는 것. 자료구조에서는 데이터를 표현하고 저장하는 방법에 대해 기술한다. 선형 구조 리스트 큐 스택 비 선형 구조 트리 그래프 파일 구조 순차 파일 색인 파일 직접 파일 단순 구조 정수 실수 문자 문자열 선형 구조는 자료를 표현 및 저장하는 방식이 선형(Linear)이다. 즉, 데이터를 선의 형태로 나란히, 일렬로 저장하는 방식이다. 비선형 자료 구조는 데이터를 나란히 저장하지 않는 구조이다. 상재적으로 선형에 비해 수월하지 않다. 자료구조와 알고리즘 자료구조가 '데이터의 표현 및 저장방법'을 뜻하면, 알고리즘은 표현 및 저장된 데이터를 대상으로 하는 '문제 해결방법'을 지칭한다. ..
[선행 처리기와 매크로] 선행처리 컴파일 이전에 선행처리 과정이 존재한다. 삽입해 놓은 선행처리 명령대로 소스코드의 일부를 수정한다. (수정 : 단순 치환 의미) 선행 처리 명령문은 #으로 시작한다. 선행 처리기에 의해 처리되는 문장은 끝에 ; 붙이지 않는다. #define문 #define PI 3.1415 인 경우에 #define은 지시자를 지칭한다. 지시자는 매크로를 마지막에 등장하는 매크로 몸체로 치환하라는 의미를 갖는다. PI는 매크로(매크로 상수)에 해당하고 3.1415는 매크로 몸체를 의미한다. 이러한 매크로는 매개 변수가 존재하는 형태로 정의할 수 있다. (함수와 유사한 매크로) #define SQUARE(X) X * X 하지만 사칙연산에 대해 오류가 발생하지 않게 ( ) 를 이용하여 묶어주..
[메모리 구조] 프로그램 실행시, 메모리 공간이 운영체제에 의해서 준비된다. 이 메모리 공간에 변수가 선언되고 문자열이 선언된다. 메모리 구조 코드영역 데이터 영역 힙 영역 스택 영역 코드 영역(Code Area) 실행할 프로그램의 코드가 저장되는 메모리 공간 CPU는 코드 영역에 저장된 명령문을 하나씩 가져와서 실행한다. 데이터 영역(Data Area) 전역 변수와 static으로 선언되는 static변수가 할당된다. 프로그램 종료시까지 존재한다. 스택 영역(Stack Area) 지역 변수와 매개 변수가 할당된다. 함수 탈출시 소멸된다. 힙 영역(Heap Area) 프로그래머가 원하는 시점에 변수를 할당하고 소멸하도록 지원하는 영역 [메모리 동적 할당] 함수가 매번 호출될 떄마다 새롭게 할당되고 함수 ..