분류 전체보기

    [Python] OpenCV로 자율주행 만들기(Canny threshold_#02)

    저번에 Canny threshold에서 추출한 물체의 좌표를 기반으로 선을 그어서 화면에 표현해 보았다. 목표 : 콘 인식 및 주행 개발환경 : IDLE 언어 : python 방식 : 단순 알고리즘(Canny threshold) 직전 포스팅에서 개선된 사항 및 발견한 오류에 관해 작성했다. 이전 포스팅을 보고 싶다면 아래 포스팅을 참조하기 바란다. [Python] Canny threshold를 이용하여 이번에는 threshold방식을 이용하여 인식하고자 하는 물체의 윤곽선을 얻었다. 목표 : 콘 인식 및 주행 개발환경 : IDLE 언어 : python 방식 : 단순 알고리즘(Canny threshold) 위와 같이 계획을 세웠다. Canny codezaram.tistory.com 먼저 저번 포스팅과 같이..

    [03] 프로그램 설계 방법론(식, 변수, 타입)

    언어 : JAVA 환경 : eclipse 프로그램은 실행할 때 비로소 태어난다? 메모리에 올려지면서. static이 붙어있는 메서드는 실행하지 않아도 살아있다. 즉, 메모리에 올라가지 않아도 된다. public class Hello { public static void main(String[] args) { System.out.println("hello world"); } } 따라서 main함수는 늘 살아있다. java의 최소 단위는 1byte(8bit)이다. 기본 타입 : boolean : 1byte char : 2 byte byte : 1 byte(-127~127) short : 2 byte(-30,000~30,000) int : 4 byte(-21억~21억) long : 8 byte float : ..

    [02] 이산수학(명제논리의 응용과 동치)

    a : 학교에서 인터넷에 접속할 수 있다. c : 컴퓨터공학 전공자이다. f : 신입생이다. a --> (c ∨¬f) P : 16세 이상이다. q : 120cm 미만이다. r : 롤러코스터를 탈 수 있다. (¬p ∧ q) --> ¬r 수업 시간에는 항상 긍정문만을 사용할것을 약속한다. p : 시스템 전달 메시지가 버퍼에 저장되어 있다. q : 시스템 전달 메시지가 재전송 되었다. 1. p ∨ q 2. ¬p 3. p --> q 4. ¬q sol. 2번으로 인해 p==false 1번에 p가 false이므로 q는 true 그러나 4번이 참이려면 q는 false이어야 하므로 위는 일관되지 않다. 드모르간 법칙: ¬(p ∨ q)와 ¬p ∧ ¬q가 논리적 동치이다. ¬p ∨ q와 p --> q도 논리적 동치이다. ..

    [01] 이산수학(이산수학이란)

    은교수님 : 찾아뵈려면 이메일드리기 한 단원이 끝나면 lms로 연습문제 제공 이산수학 개요 이산 : 좌표평면에 그렸을 때 띄엄띄엄 연속 : 좌표평면에 그렸을 때 선으로 표현 컴퓨터는 모든 숫자를 이산적으로 처리하기 때문에 이 교과목을 배운다. 조건문, 반복문, 함수 등에 필요한 논리적 사고력을 함양할 수 있다. 다익스트라 알고리즘 : 가장 빠른 최적의 경로를 찾는 알고리즘 정수론, 알고리즘이 제일 어렵다. 명제란: 참 또는 거짓을 나타내는 선언적 문장 어떤 사고를 나타내는 문장 중에서 참이나 거짓을 객관적이고 명확하게 구분할 수 있는 문장이나 수식 명제 논리: 명제를 다루는 논리 명제 변수:명제를 하나의 문자로 표현한 것 단순명제 : 더 이상 단순한 며제로 나누어질 수 없는 명제복합명제 : 기존 명제들과..

    [02] 프로그램 설계 방법론(Hello, world)

    컴파일 되기 전의 자바 파일의 확장자는 .java이고, 컴파일 후의 자바 파일의 확장자는 .class이다. 자바는 메모리를 자동으로 관리해준다. import javax.swing.* //GUI import java.time.* //시간 아래와 같이 코드를 작성한다면 import javax.swing.*; public class Hello { public static void main(String[] args) { JOptionPane.showMessageDialog(null, "Hello, world"); } } 위와 같은 결과가 나온다.

    [01] 프로그램설계방법론(MVC모델이란)

    키워드 : 프로그래밍, 객체지향, JAVA 도교수님 github : doggzone.github.io/cse2016 개발환경(IDE) : eclipse JAVA가 모든 컴퓨터에 설치할 수 있는 이유는 가상 머신(JVM)이 있기 때문이다. 프로그래밍은 설계와 구현 단계로 나누어진다. 설계 : 설계도 작성, MVC(Model, View, Control) 아키텍처 구현 : 코딩(객체지향 프로그래밍) 설계도를 작성하고 거기에 맞게 프로그래밍해라!! 객체지향 프로그래밍이란? : Object-Oriented Programming Field(상태)와 Method(기능)로 구성 메서드 호출 메시지를 보내면 거기에 대한 응답(return)을 보낸다. 필드를 선언하면 거기에 대한 메서드들을 사용할 수 있다. JAVA JA..

    [Python] OpenCV로 자율주행 만들기(Canny threshold)

    이번에는 threshold방식을 이용하여 인식하고자 하는 물체의 윤곽선을 얻었다. 목표 : 콘 인식 및 주행 개발환경 : IDLE 언어 : python 방식 : 단순 알고리즘(Canny threshold) 위와 같이 계획을 세웠다. Canny threshold를 이용하면 물체의 윤곽선을 얻을 수 있다. 윤곽선을 보다 정확하게 얻기 위해 Gaussian Filter을 사용하여 이미지의 노이즈를 줄여주었다. 그리고 라바콘이 주황색이라는 점을 고려하여 HSL필터로 나머지 차선과 배경과 같은 노이즈를 없애 주었다. 그 후 Canny threshold 알고리즘을 사용하여 윤곽선을 추출했다. Canny threshold에 대해 더 알고싶으면 아래 사이트를 참조하기 바란다. OpenCV: Canny Edge Dete..

    [Python] OpenCV로 자율주행 만들기(Hough transform)

    이번 시도에서는 원근법을 사용하여 이미지를 변형하는 방식 대신 차선 그 자체를 인식하는 방법을 사용하였다. 목표 : 콘 인식 및 주행 개발환경 : IDLE 언어 : python 방식 : 단순 알고리즘(허프 변환) 위와 같이 계획을 세우고 진행했다. 아래 코드를 요약하자면 이렇다. #회색으로 변환한다. #가우스 블러를 사용하여 노이즈를 없애준다. #Canny를 사용하여 운곽선을 따준다. #관심 영역을 설정하여 외부의 필요 없는 이미지를 가린다. #허프 변환을 통해 나온 점들을 연결하여 선을 그린다. #예측 선을 원래 이미지에 덮는다. #위의 과정을 반복하여 동영상을 처리한다. import matplotlib.pyplot as plt import matplotlib.image as mpimg import n..