독학하는 학생의 정리노트

독학하며 정리노트를 올리는 학생 공부 블로그입니다.

IT 프로그래밍/Python 파이썬 12

파이썬 리스트 python list

list have specific ways to index it. In a list, elements inside can be add, remove, change, move, or copy through specific commands. index는 리스트 안에 있는 원소들을 지칭한다. index는 0부터 시작한다 index에 끝은 -1라고 표기한다 f-strings는 앞에 f를 붙이고{변수명}형태로 작성한다. 대문자도 가능하다. .append = add element into the list 원소 추가 .insert = add element into the list 원소 추가 pop() = remove the last element and return the element 마지막 원소 지우기 .exte..

기초 파이썬 operators

정말 기초적인 부분을 한번 집고 넘어가기 위해 만들었다. 데이서에는 많은 타입이 있다. 숫자, 문자 기타 등등. text type : str numerica type : int(정수), float(소수), complex sequence types : list, tuple, range mapping type : dict set types : set, frozenset boolean type : bool 변수에 이름을 정할때 space ( 스페이스 )를 사용 할 수 없다. " _ "를 이용하여 스페이스를 대신한다. 숫자로 시작할수없고 소문자로 시작해야한다. 연산자 : + = addition 더하기 ex. x+y - = subtraction 빼기 ex. x-y * = multiplication 곱하기 ex. ..

Lambda, map(),filter(),reduce() 람다란?

iterable를 공부하는 와중 람다라는 것을 많이 들어봤는데 뭔지 몰라 공부하게 되면서 작성된 노트입니다. 파이썬에서 lambda는 런타임에 생성해서 사용할 수 있는 익명 함수입니다. 이것은 함수형 프로그래밍 언어에서 lambda와 정확히 똑같은 것은 아니지만, 파이썬에 잘 통합되어있스빈다. filter(), map(), reduce()와 같은 전형적인 기능 개념과 함께 사용되는 매우 강력한 개념입니다. lambda는 쓰고 버리는 일시적인 함수 입니다. 함수가 생성된 곳에서만 필요하다. ***iterable = list*** map(function, iterable,..) function는 함수이름이고 두번째 인자 iterable은 한번에 하나의 멤버를 반환할 수 있는 객체입니다. (list, str,..

Python Trapping Rain Water 풀이 + 해석

안녕하세요 코딩 문제로는 오랜만에 글을 올리는것 같네요 처음인가? 이 문제는 아마존, 구글, 애플 혹은 컴공 대학 전공자 들에 졸업 문제로 많이 출제되는 유형에 문제라고 하더라고요! 저는 아직 초짜긴한데 불가피한 이유로 이 문제를 풀게 되었습니다. 저는 이 문제를 반은 풀었긴했는데 마지막 코드 작성하는걸 못해서 그냥 영어 해설보고 마무리 지었습니다. 그냥 간단하게 문제를 설명하자면 저 블럭들은 1X1 크기이고 파란색 블럭은 물을 의미합니다. 저 map 블럭에는 얼마만큼에 물이 담기는지를 찾는 문제입니다. 양 옆에 기둥이 있어야 물이 찬다. 양 옆에 기둥에 min 만큼 물이 찰 수 있다. array에 있는 숫자들을 반복하면서 현 index 양 옆에 있는 각 두 기둥에 길이를 찾은 다음 그 기둥 둘이 min..

Machine learning 머신러닝이란 - 1 (+영어)

요즘 머신러닝을 공부하는 과정에서 학교에서 지원해주는 프로그램을 신청하였다. 간단히 PPT 노트 정리를 한 것이고 한국어로 변역하는게 오히려 더 어려워서 영어로 썼습니다. 들어가기에 앞서 머신러닝 어디에 이용되는지 짧게 살펴보자 self driving Car(computer vision, reinforcement learning) object detection (computer vision) face and video generation AI assistants (natural language processing) Game playing (alphago) Time series analysis 자율주행차 객체 탐지 얼굴 탐지(?) 인공지능 게임(알파고) 시계열 ( 일정시간 간격으로 배치된 데이터들의 수열)..

Line 기본 총정리

길고긴 여정을 끝냈다...라고 안도 할 때쯤 이건 새발의 피 라는걸 동시에 느꼈다. 이거는 정말 base중에 base라는 말을 듣고 그래도 기초는 끝냈다라는 것에 기쁨을 느끼며 마지막 총정리를 하고 프로젝트로 넘어가자 이미지를 불러와 gray scale로 변환시킨다. (edge을 찾기 위한 가공처리) kernal _size 얼마의 픽셀 값으로 블러셔 할 것인지. 가우시안 필터로 gray scale에 사진을 (몇 대 몇(픽셀 값))으로 블러셔 할 것인지. sigma는 0으로 맞춰 노이즈 제거에만 초점을 둔다. low_threshold = 임계값 1. - 임계값 1 이하에 포함된 가장자리는 가장자리에서 제외하고 high_threshold = 임계값 2 - 임계값 2 이상에 포함된 가장자리는 가장자리로 간주하..

cv2.HoughLinesP(edges,rho,theta,threshold,np.array([]),min_line_length,max_line_gap)

서론쓸 힘이 없다. 게임하고 싶은 마음을 뒤로 하고 알고리즘 공부를 해보자 cv2.HoughLInes에서는 image를 쓴다. p는 probabilistic 즉 확률적이라는 말이 포함된 허프변환이다. image = 8bit 즉 1 채널인 흑백이미지, 보통 canny를 통해 edge를 찾은 후에 이 함수를 적용하므로 이미 흑백으로 변환된 상태이다. rho = hough space에서 p값을 한번에 얼만큼 증가시키면서 조사할 것인지 묻는것. 보통 1을 넣는다. theta = 단위는 라디안이다. 따라서 보통 각도 값을 입력한 후에 pi/180을 곱해서 라디안 값으로 변환 시킨다. 180도를 넘는 순간부터 직선이 유니크 해지지 않다. 한번에 얼만큼 증가시키면서 조사할 것인지 묻는것이므로 보통 1도를 넣는다 즉 ..

Gaussian 가우시안 필터 openCV

전 lesson에서 제일 삽질 많이 했던 가우시안 필터에 관한 내용입니다. Guassian 필터는 blur = cv2.GaussianBlur(img,(val,val),0) 으로 구성되어 있고 이미지를 부드럽게 만드는 blurring or smoothing에 사용되는 대표적인 필터들이다. 보통 노이즈를 제거하는 것에 초점을 둔다. (val,val) = Gaussian 블러 필터, (val, val2)와 같이 두 개의 값이 달라도 되지만, 모두 양의 홀수여야한다. 0은 sigmaX 값 = 0, sigmaY 값은 자동적으로 0 으로 설정되고 gaussian 블러필터만을 적용한다. 이 필터는 가운데 픽셀에 가장 큰 가중치를 두어 계산을 한다. 내가 엄청 삽질을 했던 sigma값에 대해 설명을 하겠다. sigma..

Canny Edge openCV, python

openCV를 하는 도중 문득 떠오른 생각 하나가 있다. "나는 정말 이미지와는 연이 없군아" 하고 싶지 않은 공부를 끝까지 하는 사람이 성공한다 하니 눈물 머금고 해볼려한다. Canny edge detection은 가장 인기있는 에지 찾기 알고리즘 중 하나이다. cv2.Canny(원본 이미지, 임계값1, 임계값2) 즉 가장자리를 찾는 것 임계값 1 이하에 포함된 가장자리는 가장자리에서 제외하고 임계값 2 이상에 포함된 가장자리는 가장자리로 간주하고 임계값 2는 임계값 1보다 3배 정도 작아야한다. ( 그래야 깔끔히 나옴 ) 1단계 : 노이즈 제거 (noise reduction) 이미지에서 노이즈가 있으면 에지를 제대로 찾는 것이 어려워 첫 단계로 가우시안 필터 (Gaussian Filter)를 이용해 ..

허프 변환 hough transform

현재 영상처리와 이미지 프로세싱을 공부하고 있어 허프변환이라는 것을 알아보려한다. 허프변환은 한 점이 가질 수 있는 모든 직선을 b와 m에 대한 평명에서 하나의 직선으로 표현할 수 있다. 그렇다면 두 점을 m,b에 대한 식으로 바꿨을 때는 m,b평면에서 직선이 두개 나오게 된다. 그렇다면 그 두 직선의 교점은 두 점을 지나는 직선을 의마하게 된다. m,b평면에서 나타낸 직선은 한 점이 가질 수 있는 모든 직선을 의미하고 m1,b1에서 만난 점은 두 점이 모두 가질 수 있는 직선을 의미하기 때문이다. 교점이 의마하는 것은 x,y 평면에서 그 점들을 지나는 직선 을 의미한다. wkdtjsgur100.github.io/Hough-Transform/ 이 블로그를 참고 하였습니다.' in image space, ..