applyColorMap를 사용하여 OpenCV Python에서 HeatMap을 흉내내는 예제코드입니다. 2023. 9. 10 최초작성 배열에 가상으로 값을 넣어서 출력해본 결과입니다. 배열에 있는 값이 높을 수록 검은색 < 빨간색 < 노란색으로 보입니다. 전체 코드입니다. import cv2 import numpy as np # 가상으로 점유 정보가 저장된 2차원 배열을 생성합니다. # OpenCV의 컬러맵 함수는 8비트 이미지를 사용하므로 0-255 범위로 설정합니다. 필요시 값의 범위를 조정해야합니다. occupancy_counts = np.array([[0,0,0,0,0,0,0,0,0,0], [0,10,10,10,10,10,10,10,10,0], [0,0,0,0,0,0,0,0,110,0], [0,..
하나의 스레드에서 큐에 데이터를 넣고 다른 쓰레드에서 큐에서 데이터를 꺼내는 간단한 예제 코드입니다. 아래 링크를 참고했습니다. https://docs.python.org/3/library/queue.html 2022. 09. 03 최초작성 2023. 01. 21 큐 모듈 변경. import threading from multiprocessing import Queue def producer(): count = 0 while True: lock.acquire() # 전역 변수 접근을 금지합니다. if not q.full(): # 큐가 꽉차지 않았다면 count = count +1 q.put_nowait(count) # 큐에 데이터를 넣습니다. print(f'push item {count}') lock.r..
하나의 figure안에 여러 개의 이미지를 출력하는 예제코드입니다. figure 안에 여러 개의 subplot이 존재할 수 있고 subplot마다 하나의 그래프나 이미지가 그려지게 됩니다. 2022. 10. 19 최초작성 import cv2 import numpy as np import matplotlib.pyplot as plt # 가로 길이, 세로 길이. 인치 단위 plt.figure(figsize=(7, 10)) for i in range(20): # 열개수 4개, 행 개수 5개 짜리 그리드를 생성한 후, 인덱스 i+1 번째를 사용 plt.subplot(5, 4, i + 1) # 빈 이미지에 인덱스 숫자를 출력 img_empty = np.zeros((150,150,1), dtype=np.uint8)..
csv 파일을 일정 크기로 나누어 여러 파일로 분리하는 파이썬 예제 코드입니다. 최초작성 2023. 9. 28 다음 링크에 있는 iris 데이터셋을 가지고 진행했습니다. https://www.kaggle.com/datasets/arshid/iris-flower-dataset/ 전체 소스코드입니다. import pandas as pd import numpy as np file = 'IRIS.csv' filename = file.split('.')[0] df = pd.read_csv(file) print(df.shape) print() print(df.head()) print() n = 50 for idx,(_, sub_df) in enumerate(df.groupby(np.arange(len(df)) //..
이번 포스팅에서는 OpenCV Python의 좌표계와 그리기 함수를 사용하기 전에 알아야 하는 개념에 대해서 설명합니다. 2015. 1. 2 - 최초 작성 2023. 4. 13 - 최종작성 관련 포스트 OpenCV 좌표계를 직교 좌표계로 변환하는 Python 코드 https://webnautes.tistory.com/1812 OpenCV 좌표계 변환( Top Left ↔ Bottom Left ) https://webnautes.tistory.com/1815 OpenCV Python에서는 좌표를 튜플로 나타냅니다. 튜플의 첫번째 원소가 x 좌표, 두번째 원소가 y좌표입니다. ( x , y ) 이미지의 왼쪽 위가 원점 (0,0)입니다. 오른쪽으로 갈수록 x값이 증가하고 아래쪽으로 갈수록 y 값이 증가합니다...
OpenCV에서 사용하는 좌표계를 직교 좌표계로 변환하는 예제입니다. 2023. 4. 13 최초작성 OpenCV의 좌표계는 아래 그림처럼 왼쪽 위가 (0, 0)이고 오른쪽으로 갈수록 x좌표가 증가하며 아래로 내려갈수록 y좌표가 증가합니다. 자세한 내용은 다음 포스트를 참고하세요. OpenCV Python 그리기 예제 1. OpenCV의 좌표계 https://webnautes.tistory.com/580 수학에서 접한 좌표계는 직교 좌표계로 보통 왼쪽 아래에 (0,0)이 주어지며 오른쪽으로 갈수록 x좌표가 증가하고, 위로 올라갈수록 y좌표가 증가합니다. OpenCV의 좌표계를 직교 좌표계로 변환하는 코드를 간단히 작성해봤습니다. 화면 중앙에 (0,0)이 위치하며 오른쪽으로 갈 수록 x좌표가 증가하고 위로 ..
리스트를 정해진 개수로 분할하여 딕셔너리에 저장하는 Python 예제 코드입니다. 2023.1.21 최초작성 # 리스트 크기 max_size = 18 # 나눌 원소 개수 element_size = 6 # 테스트를 위해 연속적인 숫자로 구성된 리스트 생성 temp = [i for i in range(0,max_size)] # element_size 크기의 리스트를 원소로 하는 리스트 생성. # max_size가 element_size로 나누어 떨어지지 않는 경우 마지막 원소로 element_size보다 작은 크기의 리스트가 생성됨. g_image_order_list = {} for i in range(0,max_size,element_size): g_image_order_list[i//element_siz..
Python에서 C언어의 getch 함수와 동일한 기능을 하는 함수를 사용한 예제 코드입니다. 2022. 12. 14 최초작성 getch는 엔터를 누를 필요 없이 키 하나를 누른 것을 입력으로 받습니다. 아래 예제코드는 q를 누르면 프로그램이 종료됩니다. 윈도우와 우분투에서 테스트 가능하도록 작성되었습니다. import platform if platform.system() == 'Windows': import msvcrt as getch else: import getch while True: char = getch.getch() if platform.system() == 'Windows': char = char.decode('utf-8') print(char) if char == 'q': break
넘파이 배열 이미지를 하나의 넘파이 배열로 합쳤다가 다시 분리하는 예제 코드입니다. 2022. 12.8 최초작성 넘파이 모듈을 로드합니다. >>> import numpy as np 3개의 넘파이 배열을 생성합니다. >>> a = np.empty((488,488,3), dtype=np.uint8) >>> b = np.empty((488,488,3), dtype=np.uint8) >>> c = np.empty((488,488,3), dtype=np.uint8) 첫번째 차원을 추가하여 4차원 넘파이 배열로 변환합니다. >>> a = np.expand_dims(a, axis=0) >>> b = np.expand_dims(b, axis=0) >>> c = np.expand_dims(c, axis=0) 넘파이 배열..
logging을 사용시 출력하라고 지정한 내용외에 표준 출력이나 표준 에러로 화면에 보여지는 내용들이 파일에 저장되었으면 하는 아쉬움이 있었습니다. 찾아보니 해결한 코드가 있네요. 하지만 파일에 저장이 되는 반면 화면에는 출력이 보이지 않는 단점이 있습니다. https://stackoverflow.com/a/39215961/19664020 2022. 11. 14 최초작성 import logging import sys class StreamToLogger(object): """ Fake file-like stream object that redirects writes to a logger instance. """ def __init__(self, logger, level): self.logger = log..