공부 정리 65

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] findContours를 사용해 윤곽(contour) 추출하기

findContours를 이용해서 윤곽(contour)을 추출하는 걸 시도했다.외곽선 경계가 명확하지 않은 것도 있고, 응용 방법을 잘 몰라서 경계선이 명확히 그어지지 않은 것도 있는 듯 하다. 소스코드 #include #include #include #include using namespace cv; using namespace std; int main(void) { Mat image; image = imread("IU.jpg", 1); namedWindow("Display Window", CV_WINDOW_AUTOSIZE); imshow("Display Window", image); Mat gray; cvtColor(image, gray, CV_BGR2GRAY); Canny(gray, gray, 10..

Library/OpenCV 2018.04.26

두근두근 자료구조 2장 프로그래밍 프로젝트 1번

어떤 것들은 심심할 때마다 다시 공부하곤 하는데, 자료구조도 그 중 하나다. 개인적으로 공부하면서 정리한 것들이고 답이 틀렸을 수도 있기 때문에 지적은 언제나 환영한다. #include #pragma warning(disable:4996) #define MAX_DEGREE 101 typedef struct { int degree; float coef[MAX_DEGREE]; } Polynomial; Polynomial read_poly() { int i; Polynomial p; printf("다항식의 최고 차수를 입력하시오: "); scanf("%d", &p.degree); printf("각 항의 계수를 입력하시오 (총 %d개): ", p.degree + 1); for (i = 0; i b.degree)..

두근두근 자료구조 2장 연습문제

어떤 것들은 심심할 때마다 다시 공부하곤 하는데, 자료구조도 그 중 하나다. 개인적으로 공부하면서 정리한 것들이고 답이 틀렸을 수도 있기 때문에 지적은 언제나 환영한다. 1. int a[10][20]에서 배열이 차지하는 메모리 공간의 크기는 얼마인가? int형은 4바이트라고 하자.(4) 800 바이트, 10x20x4 2. float a[100]으로 선언된 배열의 시작 주소를 1000번지라고 할 때, 배열의 10번째 요소의 주소는 몇 번지인가?(4) 1040번지, 1000+10x4 3. 다음 배열 중에서 크기가 가장 큰 배열은?메모리 크기 기준(2) double array2[10]; 10x8 = 80바이트인덱스 크기 기준(3) char array3[40]; 40 4. 크기가 10인 배열 two[]를 선언하..

파이썬(Python) 간략 정리

파이썬(Python)은 귀도 반 로섬에 의해서 1991년에 나온 인터프리터 언어로, 이 역시 심심할 때 만들어져서 나온 공돌이들의 걸작 중 하나로 분류된다. 파이썬(Python)은 크게 두 버전, Python 2(2000), Python 3(2008)로 분류하며, 두 버전 간 호환되지 않는 부분이 너무 많았던 적이 있었다. 결론적으로 파이썬 2는 2.7 이후로 더 이상 발전할 일이 없고 3에 초점을 맞춰 개선되고 있기 때문에 파이썬 3에 맞춰 공부하는 것이 좋다. 파이썬은 개발자들 사이에서는 생산성과 개발 속도에서 매력이 있는 언어로, 교육 기관에서는 초보자들이 입문하기 쉬운 언어로 분류되는 추세다. 국외 대학에서는 이미 프로그래밍 입문 언어로 파이썬을 선택했고, 국내 대학도(필자가 재학 중인 학교의 학..

Visual Studio에서 OpenCV 시작하기

필자는 예전부터 이미지와 영상 처리에 대해서 관심이 많았다. 영상 처리를 하기 위해서는 OpenCV가 적합하다고 판단을 했고 시간적 여유가 생기기를 기다렸다.대학교 재학 중에는 학업을 이유로 계속 미뤄오다가, 최근에서야 공부를 시작했는데 책 한 권 없이 기본도 없이 맨땅에 헤딩을 시작한 상태라 허점이 많다. 필자의 블로그에 있는 다른 글들이 질적으로 우수하다고 당당하게 이야기할 수는 없지만, 적어도 OpenCV에 관련한 글들에 비하면 낫다고 이야기할 수 있다. 이 카테고리의 글은 다른 카테고리에 비해 지식의 전달보다는 초보의 입장에서 공부한 것들을 보여주는 용도에 지나지 않을 것이다. 그렇기 때문에 전문적인 설명을 원한다면 이 페이지를 꺼도 좋다고 생각한다. OpenCV는 무엇인가?OpenCV가 무엇인지..

Library/OpenCV 2018.03.11

Algorithm] 플로이드-워셜(Floyd-Warshall) 알고리즘

모든 쌍의 최단 경로를 구하는 방법을 찾고 싶다면, 다익스트라(Dijkstra) 알고리즘을 모든 정점(Vertex)에 대한 최단경로를 구하거나 다익스트라가 제한되는 경우(음의 가중치가 존재하는 경우)에는 벨만-포드(Bellman-Ford) 알고리즘을 모든 정점(Vertex)에 대해서 사용하면 된다. 플로이드-워셜(Floyd-Warshall) 알고리즘은 앞서 말한 두 알고리즘과는 다르게 처음부터 모든 정점 사이의 최단 경로를 구하는 알고리즘이다. 위 그림은 i에서 j로 가는 방법을 표현한 것으로, k를 경유하는 경우와 그렇지 않은 경우에 대한 것이다. 위 문자의 의미는 1부터 k까지만 경유할 수 있는 상황에서 i에서 j까지 갈 수 있는 모든 경로 중, 가장 짧은 경로의 거리로, 동적계획법(Dynamic P..

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++] Visual Studio와 컴파일러

요즘 대학교 전산실 컴퓨터 성능이 기본적으로 멀티코어에 8GB의 램을 깔고 가는 경우가 많다 보니, 통합개발도구(IDE)로 Visual Studio 커뮤니티를 사용하는 경우가 많다. 그 언어 자체의 특성과 프로그래밍에 대해서 다루기 때문에 컴퓨팅 성능이 문제가 되지 않는다면 Visual Studio가 제공하는 여러 환경만큼 입문하는 사람에게 좋은 것은 없다. 이렇게 입문하고서 한창 프로그래밍을 즐기다가 자료구조, 알고리즘 등을 접하고, 좀 더 자신의 실력을 향상시키기 위해서 백준 온라인 저지(BOJ)나, 알고스팟 등의 사이트에서 제공하는 문제를 풀다보면 Visual Studio에서는 정상적으로 작동함에도 불구하고 채점 시 컴파일 에러를 띄우는 문제를 접하게 된다. 예를 들자면, strlen()을 사용하는..