일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 변수의 초기화와 대입
- camera
- 프로그래머스 lv2
- 변수
- C Mount
- c언어
- ASCCII
- 간단한 앱만들어보기
- 카메라
- 고정비트레이트
- image sensor
- 조건 제어문
- 저조도
- main 함수 인자 전달
- Zoom Lense
- 렌즈
- Pixel Bit Format
- Gain
- Depth of Fileld
- 실생활알고리즘
- CS Mount
- AppInventer
- 이미지센서
- 아이리스
- 저장소와 동적메모리
- 심도
- 무게선별자동화
- Digital Slow Shutter
- Patch Cleaner
- 과초점거리
- Today
- Total
목록분류 전체보기 (49)
카메라 개발자 공부방(SW)
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dg9Wrr/btrkJnCSERF/NSaHghSVtBo96u408bJeuk/img.jpg)
Fast Fourier Transform 코드입니다. void FourierTransform::revertBit(float* real, float* img, int size, float* realDst, float* imgDst, bool bHori) { int reverseIdx = 0; int n = (int)log2((double)size); for (int i = 0; i (j + 1)); } if (!bHori) { realDst[reverseIdx * size] = real[i * size]; imgDst[reverseIdx * size] = img[i * size]; } else { rea..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/2kNxW/btrkWOyyqgn/5nwFncR6a6RxzxKXh7CNmk/img.jpg)
영상 신호를 주파수 영역으로 변환시키는 DFT 코드 입니다. 입력은 pSrc이고 출력은 pReal, pImaginary입니다. void FourierTransform::DFT(Mat* pSrc, Mat* pReal, Mat* pImaginary) { *pReal = Scalar(0); *pImaginary = Scalar(0); float* src = pSrc->ptr(0); float* real = pReal->ptr(0); float* imaginary = pImaginary->ptr(0); float N = (float)pSrc->rows; float M = (float)pSrc->cols; float NM = N * M; /* If you want to visualize this frequency..
머신러닝에 대해서도 포스팅하고자 합니다. # 머신 러닝이란 y = f(x)라는 함수가 있다고 해봅시다. 머신러닝은 우리가 주어긴 자료를 이용해 입력(x)과 출력(y) 간의 관계인 f를 찾는 것이 주로 하는 일입니다. 머신러닝엔 크게 지도학습과 비지도 학습으로 나뉘는데, 지도 학습은 학습을 시킬 때 '입력(x)에 대해 출력(y)은 이거야'라고 정답이 있는 학습 방법이 지도 학습입니다. 그리고 지도 학습에선 반드시 학습 데이터에 label이 있어야 합니다. 비지도 학습은 입력(x)에 대해 출력(y)이 없이 학습하는 방법을 의미하며, 입력들의 관계(특징)를 찾아서 학습하는 특징이 있습니다. 그리고 지도 학습과 비지도 학습을 섞은 semi 학습 방법도 있습니다. #머신러닝의 종류 머신러닝은 추정하려는 데이터가 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cleYfg/btriAHcdJGu/1lf68K2bcnjyMcMabEoZk0/img.jpg)
자 오늘은 비트 필드에 대해 공부해볼 시간입니다. C언어에서 연산을 할 수 있는 메모리의 최소 단위가 얼마일까요? 바로~ 1byte입니다. 그런데 이 1byte 보다 작은 단위의 연산을 필요로 하는 경우 어떻게 해야 될까요? 이때 비트 필드가 사용될 수 있습니다. 지금은 메모리 기술이 비약적으로 발전했기 때문에 메모리 자원이 넘치죠? 1byte쯤은 무시할 수 있지만, 과거엔 1byte 마저 소중했기 때문에 bit를 쪼개서 메모리를 관리하였답니다. (임베디드 산업에선 여전히 메모리 리소스가 부족하기 때문에 bit 단위로 쪼개서 데이터에 저장을 합니다. 사용하는 방법을 제대로 알면 유용하게 사용할 수 있습니다.) 비트 필드를 선언하는 방법은 다음과 같습니다. typedef struct bitfield { i..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cTwdDe/btrimHpvqtw/tAv5gBuriPiKp7Y14mfwvK/img.jpg)
오늘은 union에 대해 공부해볼 시간입니다. union도 struct와 마찬가지로 기존에 있던 data type을 조합해서 새로운 data type을 정의할 수 있는 사용자 정의 data type입니다. union의 정의는 아래와 같이 합니다. union Point { int x; int y; }; #include union Point { int x; int y; }; int main() { union Point point; point.x = 4; point.y = 4; printf("%d %d\n", point.x, point.y); return 0; } // 실행결과 // 4 4 union을 사용해본 예제입니다. 참 간단하죠? struct와 사용하는 같은 것 같아도 차이점은 있습니다. struct의..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bY77ut/btriAHpIUZB/Ihh2Re9M2ovMIbV6lhBrQk/img.jpg)
오늘은 main 함수 인자에 대해서 공부를 해보겠습니다. main 함수도 함수기 때문에 인자를 받을 수 있습니다. main 함수의 인자가 전달된다고 할 때, main 함수의 원형은 아래와 같습니다. #include int main(int argv, char** argc) { return 0; } argv는 인자의 수를 의미하고, argc가 가리키는 메모리 안에 문자열 형식으로 저장이 되어있습니다. argc의 첫번째 요소에 저장된 데이터 값은 절대 경로가 포함된 프로젝트의 이름입니다. #include int main(int argv, char** argc) { printf("%d %s\n", argv, argc[0]); return 0; } // 실행결과 // 1, 프로젝트이름 이번에는 main 함수가 여..