[Python] Interpreter and PVM (Python Virtual Machine)
·
Programming
Interpreter and PVM (Python Virtual Machine)더보기대학을 막 졸업해서 초보 프로그래머로 일을 할 때 개인적으로 가지고 있던 편견 중 하나가 script language를 매우 하찮게 생각하면서 오직 compiler languages 만을 programming language로 생각했던 것이다. (지금 돌이켜보면 이불킥하고 싶을 정도로 부끄러운 생각이었다.) 학교에서 살짝 배웠던 Visual Basic에서 느꼈던 interpreter language의 간단함이 너무 머리에 남아서였는지 C, C++ 등의 언어와 달리 interpreter language를 무시하던 선입견을 가졌었다. 우스운 건, interpreter language는 무시하면서도 Virtual machine..
[Python] recursive call : Fibonacci Sequence (and dynamic programming)
·
Programming
Recursive call의 경우, 특정 함수가 내부에서 자기자신을 다시 호출하는 것을 가르킴. 다음과 같은 재귀적인 수식을 있는 그대로 작성하게 해준다는 장점은 있지만,속도 및 메모리 사용 등의 측면에서는 그리 환영받지는 못함 (때문에 많이 사용되지 않음).$$f(t) = f(t-1) + ...$$$f(t)$를 정의하는데에 같은 함수가 사용되는 경우를 recursive call로 작성하면 매우 직관적인 구현이 가능하다.대표적인 예로 Fibonacci sequence를 들 수 있다.$$f(0) = 0, \\f(1) = 1 \\f(n) = f(n-1) + f(n-2) \text{ , where }n >1$$Python 구현 : Recursive call 이용한 경우.def fibonacci_recur(nu..
[ML] Levenshtein distance
·
Programming
string(문자열) 간의 차이를 측정하기 위한 measure임. 한 문자열이 다른 문자열로 변환되기 위해 필요한 최소한의 연산의 수를 나타냄. 여기서의 연산이란 다음 3가지로 구성됨. insertion (추가) deletion (삭제) substitution (치환) 참고로, Levenshtein distance는 symmetric을 성립하지 않아서 엄밀한 의미의 metric (or distance function)은 아님. Levenshtein distance의 경우, 길이가 다른 string간의 차이도 측정하지만, 같은 길이의 string만으로 한정할 경우엔 Hamming distance가 보다 편함 Hamming Distance : https://dsaint31.me/mkdocs_site/DIP/..
[DIP] Basic Operations (on a binary image) for Morphological Operations
·
Programming/DIP
Binary image는 pixel intensity로 0 과 1(혹은 255)의 값을 가지며, 주로 set(집합)과 관련된 연산을 통해 Morphological operaton이 처리됨. 화소집합 영상 내에 존재하는 pixel 중, 처리 대상이 되는 object에 해당하는 pixel들의 집합 분야에 따라 해당 대상은 다양함. 일반적으로 “화소집합” 내의 pixel은 1 의 값을, 그 외의 pixel은 0을 값으로 가짐. 기본 연산들 Union 연산 화소집합 간의 Union Intersection 연산 화소 집합 간의 Interception Complement 연산 화소 집합 간의 Complement Difference 연산 화소 집합 간의 차이. Translation 연산 화소 집합 의 이동오른쪽의 결..
[OpenCV] imshow 창설정 및 종료 처리 (x버튼 처리)
·
Programming/DIP
imshow 창설정 및 종료 처리 (x버튼 처리)창 설정 관련 arguments 및 options cv2.namedWindow를 통해 미리 창에 대한 title을 지정하여 놓을 수 있음.cv2.namedWindow('image', cv2.WINDOW_NORMAL)# Using resizeWindow() : Below code does not works with cv2.WINDOW_AUTOSIZE# cv2.resizeWindow("image", 300, 700)cv2.WINDOW_AUTOSIZE가 기본으로 2nd argument없이 호출시 선택됨.읽어들이는 image 크기에 맞춰 window의 크기가 결정됨.2nd argument로 cv2.WINDOW_NORMAL를 설정시 window의 크기 조정이 가능함..
[Python] argparse 모듈 사용하기.
·
Programming
argparse 모듈Python에서 기본적으로 제공하는 명령어 인자 파서 모듈이다. command line inerface 으로 프로그램을 만들 때 기본적으로 필요하다.linux 쪽 경험이 풍부한 이들에겐 getopt가 보다 익숙하지만 그런 사람이면, 이런 문서가 필요없다.(이런 것이 익숙한 이들하고 일하는 경우가 점점 더 없음.) 자세하게 공부하고 싶다면 다음을 참고:https://ds31x.tistory.com/518 CLI Program에서의 arguments - argparse모듈0. CLI(Command Line Interface) Program (=CLI 명령어)에서 사용되는 arguments 대한 주요 용어Command: 실행할 프로그램/스크립트 이름.예) python, git, lsPara..