| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 zero to all
- matlab 영상처리
- 컴퓨터 비전
- c언어 정리
- 파이토치 김성훈 교수님 강의 정리
- tensorflow 예제
- 딥러닝
- 골빈해커
- 해리스 코너 검출
- 파이토치
- 팀프로젝트
- c언어
- MFC 프로그래밍
- 김성훈 교수님 PyTorch
- 딥러닝 스터디
- c++공부
- c++
- C언어 공부
- 가우시안 필터링
- Pytorch Lecture
- object detection
- 파이토치 강의 정리
- pytorch
- 미디언 필터링
- 딥러닝 공부
- 모두의 딥러닝 예제
- 영상처리
- TensorFlow
- Today
- Total
목록분류 전체보기 (235)
ComputerVision Jack
[다차원 배열 이해와 활용] C언어는 4차원 이상의 배열선언을 문법적으로 허용하고 있다. 2차원 배열 TYPE arr[행의 길이][열의 길이]; #sizeof() 함수를 이용하여 배열의 크기를 확인할 경우 행 x 열 x 자료형 크기이다. 2차원 배열 요소에 접근 이중 for문을 이용하여 행과 열에 대해 각각 접근한다. for(i = 0; i < row; i++) for(j = 0; j < col; j++) arr[i][j] 2차원 배열 메모리 할당 형태 2차원 배열도 메모리상에는 1차원의 형태로 존재한다. 2차원 배열 선언과 초기화 2차원 배열도 1차원 배열과 똑같이 초기화하면된다. 크기에 맞지 않게 초기화 하지 않으면 자동으로 0으로 초기화된다. 하지만 배열의 크기에 대한 명세는 행과 열 둘중에 하나는..
import matplotlib.pyplot as plt %matplotlib inline imprt seaborn as sns [4-1 데이터 시각화 필요한 이유] 앤스콤 데이터 4개의 데이터 그룹은 평균, 분산과 같은 수치적 특징이 같다. 하지만 시각화로 표기하면 데이터가 다르게 표시 되는 것을 알 수 있다. seaborn라이브러리를 이용하여 anscombe데이터를 읽어온다. matplotlib 라이브러리를 이용하여 그래프를 그린다. matplotlib라이브러리를 이용하여 anscombe데이터 4개 다 그려보기 전체 그래프가 위치할 기본 틀을 만든다. 그래프를 그려 넣을 격자를 만든다. 격자에 그래프를 하나씩 추가한다. 첫번째 행이 꽉차면 두번째 행에 그래프를 그려 넣는다. fig = plt.figu..
영상 이진화 영상의 이진화(Binarization) 영상의 픽셀을 두 개의 분류로 나누는 작업 Roi와 그렇지 않은 관심 영역으로 나누는 작업 영상의 이진화는 값을 0 or 255로 지정한다. (검은색과 흰색으로 나눈다) T임계값을 기준으로 이진화를 적용한다. double threshold(InputArray src, OutputArray dst, double thresh, double maxval, int type); #영상의 이진화를 진행하는 함수 적응형 이진화 영상의 모든 픽셀에 대해 같은 임계값을 적용하여 이진화 수행하는 방식을 전역 이진화라고 한다. 영상의 밝기 값이 다르기 때문에 전역 이진화의 한계가 존재한다. 따라서 각 픽셀마다 서로 다른 임계값을 사용하는 기법이 적용된다. 정해진 블록에서 ..
[연산자 오버로딩 이해] Sample operator+(const Sample & ref){ } operator 키워드와 연산자를 묶어서 함수의 이름을 정의하면 함수의 이름을 통하거나 연산자를 통하여 함수를 호출 할 수 있게 한다. 연산을 할때, 피연산자가 객체일 경우, 클래스 안에 정의된 연산자 재정의를 통하여 함수를 불러온다. 이러한 연산자 재정의 함수는 const로 선언하지 않는다. 연산자 오버로딩 멤버 함수에 의한 연산자 오버로딩 - 객체.operator+(객체) 전역 함수에 의한 연산자 오버로딩 - operator+(객체, 객체) 연산자 오버로딩 주의사항 의도를 벗어난 연산자 오버로딩은 좋지 않다. 연산자의 우선순위와 결합성은 바뀌지 않는다 매개변수의 디폴트 값 설정 불가하다 순수 기능은 보존한..
[함수 인자 배열 전달] 함수의 인자 전달 방법 : 복사 함수호출 시 전달되는 인자의 값은 매개 변수에 복사된다. 실제로 전달되는 것은 던져주는 매개 변수가 아닌, 매개변수에 저장된 값이다. 매개변수로 배열을 선언할 수 없다. 배열을 넘겨 받으려면 배열의 주소 값을 전달 받아야 한다. 배열을 함수 인자로 전달하는 방법 포인터 변수를 사용하여 매개 변수로 던져준다. void ShowArayElem (int * param, int len) { ..... } void ShowArayElem(int param[], int len) { ........} [Call-by-value & Call-by-reference] call-by-value : 함수 호출시 단순히 값 전달 call-by-reference : 메모..
[포인터와 배열] 배열 이름 배열 이름은 포인터. 값을 바꿀 수 없는 상수 형태의 포인터이다. 따라서 배열의 이름은 배열의 시작 주소 값을 의미하며, 값 저장이 불가능한 상수다. 배열은 시작 주소만 알면 자료형을 통해 다음위치를 예측할 수 있기 때문이다. 배열 이름도 포인터이기 때문에 *연산이 가능하다. 포인터를 배열의 이름처럼 사용할 수 있다. int *ptr = &arr[0]; #ptr[0] = arr[0]과 같은 의미이다. [포인터 연산] 포인터는 *연산 이외에도 증가 감소 연산자도 사용할 수 있다. int형 포인터 1증가 - > 주소값 4 증가 double형 포인터 1증가 - > 주소값 8증가 *(++ptr) : ptr에 저장된 값 자체를 변경 *(ptr+ 1) : ptr에 저장된 값은 변경되지 ..
합성곱 신경망(convolutional neural network) = 컨브넷 CNN 딥러닝 모델 대부분은 컴퓨터 비전(Computer Vision) 애플리케이션에 사용된다. 합성곱 신경망 소개 model = models.Sequential() model.add(layers.Conv2D(32, (3, 3), activation = 'relu', input_shape = (28, 28, 1))) model.add(layers.MaxPooling2D((2, 2))) model.add(layers.Conv2D(64, (3, 3), activation = 'relu')) model.add(layers.MaxPooling2D((2, 2))) model.add(layers.Conv2D(64, (3, 3), acti..
import pandas as pd [3-1 나만의 데이터 만들기] 시리즈 만들기 pd.Series( [리스트]) : pd.Series()메소드로 생성한다. pd.Series( [리스트], index = [리스트]) : 문자열로 인덱스 지정 #index매개 변수에 문자열 리스트를 크기에 맞게 던져주면 된다. 데이터 프레임 만들기 pd.DataFrame({ 'key' : [리스트] }) #pd.DataFrame()메소드로 생성 pd.DataFrame( data = { 'key' : [리스트], }, index = [리스트], columns = [리스트] ) #인덱스를 따로 index인자를 사용하여 생성할 수 있다. 데이터 프레임을 만들 때, 딕셔너리 전달한다. 딕셔너리에 순서를 유지하려면 OrderedDi..