함수 22

함수 오버로딩과 디폴트 매개변수가 만드는 모호성

함수 오버로딩(Function Overloading) 함수 다중 정의라고도 하며 아래 조건을 만족시킬 때 함수가 오버로딩 되었다고 말한다. 1. 함수명은 동일해야 하며 반환형은 동일해도 되고 동일하지 않아도 된다.2. 매개 변수의 수가 다를 때3. 매개 변수의 수는 같은데 자료형이 다를 때 ex)void Foo(int a);void Foo(int a, int b); 디폴트 매개 변수(Default Parameter)함수의 매개 변수 값을 미리 지정해두는 방법으로, 선언 시점에 이를 작성한다. 함수를 호출할 때 실인수는 좌에서 우로 적용되기 때문에 디폴트 매개 변수는 오른쪽에서 왼쪽 방향으로 지정해야 한다. ex)void foo(int a, int b=10);foo(2); // a=2, b=10foo(3,..

OpenCV] Canny 함수

Canny 함수 Canny 알고리즘을 사용할 수 있게 해주는 함수. Canny 알고리즘은 엣지 검출 알고리즘이며, 에러율과 오차율, 응답성 측면에서 나쁘지 않다. void Canny(InputArray image, OutputArray edges, double threshold1, double threshold2, int apertureSize=3, bool L2gradient=false ) image : 변환할 그레이 이미지edges : 변환한 엣지 이미지threshold1 : 엣지 임계값threshold2 : threshold1 * ratioapetureSize : 커널의 사이즈

Library/OpenCV 2018.05.01

OpenCV] 이미지 반전 시키기

OpenCV에는 cvNot이라는 이미지 반전 시키는 함수가 있어서 이번에도 친구가 보내준 아이유 사진을 반전시켜봤다. 인물 사진을 반전시키는 건 확실히... 좀 그렇다. cvNot(const CvArr *src, const CvArr *dst) src는 변환하고자 하는 이미지를, dst는 변환한 이미지를 저장할 곳으로 사용한다. 유의할 점이 두 가지 정도 있다. 1. 함수에 이미지를 Mat이 아닌 IplImage로 다루어야 한다.2. dst로 받을 IplImage는 nullptr로 비워두는 것이 아니라 cvCreateImage()로 적절하게 할당해줘야 한다. 원본 결과 소스코드 #include using namespace cv; using namespace std; int main(void) { Mat ..

Library/OpenCV 2018.03.15

Arduino] 아두이노의 입출력 함수, 시간함수 정리

Digital I/O void pinMode(uint8_t pin, uint8_t mode)pin : 설정하고자 하는 핀 번호mode : INPUT, OUTPUT, INPUT_PULLUP 중 하나반환값 : 없음 void digitalWrite(uint8_t pin, uint8_t value)pin : 핀 번호value : HIGH 또는 LOW반환값 : 없음 int digitalRead(uint8_t pin)pin : 핀 번호반환값 : HIGH 또는 LOW Analog I/O void analogReference(uint8_t type)type : DEFAULT, INTERNAL, INTERNAL1V1, INTERNAL2V56, EXTERNAL 중 한 가지반환값 : 없음 int analogRead(uint..

C++에서 구조체와 클래스 차이

최근까지 흔한 커리큘럼이 C를 배우고 C++로 넘어가는 과정이었다. 두 언어를 완전히 다르게 보는 시각에서 접근해서인지는 몰라도, C++에서 구조체와 클래스의 차이를 잘못 이해하고 있는 사람들이 여럿 있는 듯 하다. 특히 C에서의 struct를 가지고 와서 C++의 struct와 동일시하면서, C++에서는 struct는 무조건 금기시 되어야 하는 것으로 분류해 무조건 class를 쓰는 게 옳다고 생각하는 오개념을 가진 사람들도 있었다. C++에서의 struct와 class의 차이를 C의 struct와 C++의 class로 잘못 비교하고 있다는 것을 알지 못한 채로 개념이 굳어져 가는 사람들이 많은 것 같다. C++을 대하는 태도와 관심 정도에 따라 이럴 수 있다고 생각하기 때문에 이를 혼동한다고 해서 큰..

C++] 일반화와 템플릿

template 키워드를 사용하면 중복함수들을 일반화시킨 특별한 함수 생성이 가능하다.이를 템플릿함수(template function) 혹은 제네릭함수(generic function)라고 한다.C++에서의 템플릿은 함수와 클래스 코드를 일반화시키는 도구 템플릿 함수나 클래스를 작성할 경우,template이란 키워드를 사용하여 로 제네릭 타입 T를 선언한다. 중복함수를 템플릿화하는 과정의 역과정을 구체화라 하며,컴파일러는 함수의 호출문을 컴파일하는 경우 구체화를 통해구체적인 함수의 소스코드를 생성해내며, 이를 구체화된 함수라 한다. #include using namespace std; class Circle { int radius; public: Circle(int radius = 1) { this->ra..

Web] 자바스크립트를 활용한 비밀번호 체크

커뮤니티, 쇼핑몰 같은 웹 사이트에서 회원가입을 하게 되면비밀번호를 확인하는 경우가 있다.자바스크립트를 활용하면 이를 간단하게 해결할 수 있다. 'password'와, 'pass1'을 입력한 상태. 두 칸 모두 'password'를 입력한 상태. 1234567891011121314151617181920function isSame() { var pw = document.twin.wUserPW.value; var confirmPW = document.twin.wUserPWConfirm.value; if (pw.length 16) { window.alert('비밀번호는 6글자 이상, 16글자 이하만 이용 가능합니다.'); document.getElementById('pw').value=document.getE..

Arduino] LiquidCrystal.h

Arduino] LiquidCrystal.h 아두이노 강의를 들으면서 LCD 출력을 하면서 정리했던 LiquidCrystal 헤더 파일에 대한 내용이다. 주로 사용하는 부분들에 대해서 정리가 되어 있다.디테일한 예시는 차후 올라가는 포스트(사실은 보고서로 제출했던 것들)을 통해 소개할 예정이다. LiquidCrystal.h LCD 모듈을 사용할 수 있는 라이브러리(Library)로 아두이노에서는 여러 가지 함수를 지원하며,아두이노 설치와 동시에 포함되는 라이브러리. - LiquidCrystal()여러 가지 형태의 LCD의 제어 타입을 설정하고, 제어 핀과 데이터 핀을 설정함.K-아두이노 브레드보드에선 4 data 라인과, RS, EN 제어 라인만 사용, RW 제어 라인은 접지시킴.제어와 data 라인은 ..

Javascript] 함수

### JavaScript Function - 객체 자료형 중 하나- 하나의 값처럼 취급해 변수에 할당 가능- C, Java와는 달리 함수 명은 선택사항이므로 함수명 없이 생성 가능(익명 함수) ## 익명함수 - function() {}와 같이 함수 형태이나, 이름이 없음- 이름이 없어 변수에 할당해 사용- 중괄호 안에 함수가 처리할 코드 기술- 함수의 재정의가 가능, 호출 시 최종적으로 할당된 함수가 호출됨 var 변수명 = function() {};의 형태 : 함수 표현식 ## 선언적함수 - 일반적으로 함수를 만드는 방식으로 함수명 존재- 익명 함수와 같이 중괄호 안에 함수가 처리할 코드 기술- 함수의 재정의가 가능함, 호출 시 최종적으로 할당된 함수가 호출됨 ## 익명함수 vs 선언적함수 1. 실행..