Python

728x90

    [Programming] Garbage Collection (GC)

    Garbage collection (GC)은 Programming에서 memory를 관리하는 기법 중의 하나임. Dynamical Memory Allocation에서 더 이상 사용되지 않는 object 또는 data에 할당된 memory를 자동으로 회수하는 Process를 의미한다. GC를 지원하지않는 C, C++ 등의 프로그래밍 언어에서는 일반적으로 programmer가 memory의 할당과 해제를 explicitly(명시적으로) 처리해야하며, 이를 잘못 수행하여 발생하는 memory leakage는 100% programmer의 책임이었음. Pointer와 함께 이 명시적인 memory 관리 는 Programmer에게 강력한 권한을 주면서 동시에 미숙한 programmer들의 잘못된 처리로 인해 프로..

    [Python] recursive call : Fibonacci Sequence

    Recursive call의 경우, 특정 함수가 내부에서 자기자신을 다시 호출하는 것을 가르킴. 다음과 같은 재귀적인 수식을 있는 그대로 작성하게 해준다는 장점은 있지만, 속도 및 메모리 사용 등의 측면에서는 그리 환영받지는 못함 (때문에 많이 사용되지 않음). $$ f(t) = f(t-1) + ... $$ $f(t)$를 정의하는데에 같은 함수가 사용되는 경우를 recursive call로 작성하면 매우 직관적인 구현이 가능하다. 대표적인 예로 Fibonacci sequence를 들 수 있다. $$ f(0) = 0, \\ f(1) = f(2) = 1 \\ f(n) = f(n-1) + f(n-2) \text{ , where }n >2 $$ Python 구현 : Recursive call 이용한 경우. de..

    [OpenCV] imshow 창설정 및 종료 처리 (x버튼 처리)

    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의 크기 조정이 가능함..

    [Basic] Literal

    Literal 소스 코드 상에서 고정된 값을 가르킴. (또는 고정된 값을 나타내는 표기법을 의미함.) Programming language에서 data의 값을 지정(specifying data values)하는 방법은 다음 중의 하나임. 1. Literal을 사용. 2. Variable을 사용 (constant variable포함). literal 은 문자 그대로 라는 뜻을 가짐. Python에서 literal은 Object임. C에서는 primitive datatype의 변수에 할당되는 값들을 주로 의미하나, Python에서는 literal도 object(객체)이다. 다음 코드는 x라는 변수에 9라는 값을 할당(assignment)을 의미함. x = 9 위의 코드에서 9 가 바로 literal이다. l..

    [DIP] Dithering

    다음은 wikipedia의 정의임. Dither is an intentionally applied form of noise used to randomize quantization error, preventing large-scale patterns such as color banding in images. Dither is routinely used in processing of both digital audio and video data. 즉, 의도적으로 삽입된 noise인데 이를 사람이 보거나 들을 때, quantizaiton error를 randomize하여 최소화된 qunantization error를 느끼게 하는 것이다. 실제로 256 단계의 gray-scale이미지를 0,1의 binary im..

    [DIP] OpenCV : Region of Interest (ROI) : Callback으로 구현.

    cv2.selectROI가 아닌 이벤트 핸들러(MouseCallback)를 이용한 구현임.x button (or close button)을 지원하기 위한 구현을 추가.x 키를 누를 경우, roi를 보여주는 창만 닫히도록 처리함.esc 키를 누를 경우, 프로그램 종료.import cv2import numpy as npis_dragging = Falsex0,y0 = -1,-1w0,h0 = -1,-1red = (0,0,255)exit_roi = Falseimport osd_path = os.path.dirname(__file__)f_path = os.path.join(d_path,"lena.png")def onMouse(event, x, y, flags, param): global is_dragging ..

    [DIP] opencv : Region of Interest (ROI) : cv2.selectROI

    cv2에서 사각형의 ROI를 선택하는 가장 쉬운 방법. Signatureret_val = cv2.selectROI( [window_name], img [, showCrossHair=True, fromCenter=False] )window_name : ROI 선택을 수행할 window이름. strimg : 보여질 이미지.showCrossHair : ROI 중심에 십자모양 표시 여부fromCenter : 마우스 시작지점을 영역의 중심으로 간주ret_val = (x,y,w,h) of ROISample codeimport cv2import numpy as npimport osd_path = os.path.dirname(__file__)img_path = f'{d_path}/lena.pn..

    [Python] 현재 사용 중인 Python 및 패키지의 실제 경로 확인하기.

    Linux, macOSwhich python실행되는 Python의 경로를 보여줌.Windowswhere python실행되는 Python의 경로를 보여줌.Python shell (패키지 및 python library위치)# 사용중인 python 경로import sysprint(sys.executable)# python library from distutils.sysconfig import get_python_lib print(get_python_lib())# package들이 설치된 경로 import site print(site.getsitepackages()) # 시스템의 path정보로도 확인 가능. import sys print(sys.path) # 개별 import print( .__file__)여..

    [Conda] Install Conda on WSL2 (miniconda)

    1. wsl 설치 wsl --install 2023.06.12 - [Programming] - [WSL] Install WSL [WSL] Install WSL Pre-requirements. windows 10 이상 : ( version 2004 , build 19041 이상이어야 함.) windows 11 권장 : ( gpu 기능 등 가능 ... ) windows키 + R 누르고 winver 입력 버전 등을 확인하고 확인 클릭 Install WSL. cmd or wt를 관리자 dsaint31.tistory.com 2. Ubuntu Distribution 설치 Microsoft store에서 설치. 3. wsl 업데이트 command prompt 또는 windows terminal에서 다음의 명령어를 수..

    [OpenCV] cv2.cvtColor

    OpenCV의 경우, 다양한 color space를 지원함.result_img = cv2.cvtColor(src_img, conversion_flag) 위와 같은 code를 통해 src_img를 다른 color space의 이미지(실제로는 numpy의 ndarray) result_img로 변경할 수 있음. conversion_flag는 매우 다양하지만, 주로 사용하는 건 다음과 같음.cv2.COLOR_BGR2GRAY : BGR(Blue, Green, Red)을 Gray-scale image로cv2.COLOR_BGR2RGB : opencv는 BGR이 기본인지라, matplotlib나 PIL과 같이 쓰려면 RGB로 바꾸어야 함.cv2.COLOR_BGRA2RGBA : opencv는 BGR이 기본인지라, alp..