본문 바로가기

Python18

[Python] 2D 이미지 FFT 적용하기 python에서 2D 이미지에 FFT를 적용해서 Spectrum으로 바꾸어 보려고 한다. 2D 이미지는 크게 RGB-scale과 Gray-scale로 나뉘는데 각각의 방법에 따라 진행해보자. 먼저 Gray-scale을 보면 다음과 같다. import numpy as np import cv2 from matplotlib import pyplot as plt from PIL import Image img = cv2.imread('./lena_color.png', 0) dft = cv2.dft(np.float32(img),flags = cv2.DFT_COMPLEX_OUTPUT) dft_shift = np.fft.fftshift(dft) magnitude_spectrum1 = 20*np.log(cv2.magni.. 2022. 10. 5.
멀티 프로세스(Multi-Process) 사용하기 with Python 멀티 프로세스(Multi-Process)를 사용하고자 한다. 멀티 프로세스 사용하기 1. 멀티 프로세스 아래의 함수를 4번 실행한다고 가정한다. 이 함수는 1초간 잠들었다가 깨어나는 동작을 수행한다. def do_something(): print('1초간 잠을 잡니다...') time.sleep(1) print('잠에서 깨었습니다...') 이 함수를 4번 실행해보자. 이 때, 실행 완료 시간은 대략 4초가 걸릴 것이다. import time def do_something(): print('1초간 잠을 잡니다...') time.sleep(1) print('잠에서 깨었습니다...') if __name__ == '__main__': start = time.perf_counter() for _ in range(.. 2022. 7. 7.
[Python] 히스토그램 변환 with OpenCV 히스토그램은 도수 분포표를 그래프로 나타낸 것이다. 다시 말해, 무엇이 몇개 있는지 개수를 세어 놓은 것을 그래프로 나타낸 것을 의미한다. 미지의 픽셀값을 히스토그램으로 표시하는 것은 이미지를 분석하는 데 도움된다. 예를 들어 전체 이미지에서 픽셀 값이 1인 픽셀이 몇 개이고, 2인 픽셀이 몇 개이고, 255인 픽셀이 몇 개인지까지 세는 것이다. 이렇게 함으로써 픽셀들의 색상이나 명암의 분포를 파악할 수 있다. 흑백 사진과 색상 이미지의 히스토 그램을 비교해보자. OpenCV에서는 cv2.calcHist()라는 함수를 통해 히스토그램을 구현할 수 있다. cv2.calHist(img, channel, mask, histSize, ranges) - img: 이미지 영상, [img]처럼 리스트로 감싸서 전달 .. 2022. 6. 23.
멀티 프로세스(Multi-Process) 응용하기 with Python 블로그를 참고해서 멀티 프로세스(Multi-Process)를 응용하고자 한다. 멀티 프로세스응용하기 1. 싱글 프로세스를이용한이미지 다운로드 사용할 이미지는 Corey Schafer의 Python Threading Tutorial에서 가져온 15장 이미지를 사용한다. 주어진 이미지는 고해상도 이미지를 사용하며, 다운로드에 약간 시간이 소요된다. import time import concurrent.futures import os from PIL import Image, ImageFilter img_names = [ 'photo-1516117172878-fd2c41f4a759.jpg', 'photo-1532009324734-20a7a5813719.jpg', 'photo-1524429656589-6633a4.. 2022. 5. 19.