re.findall을 사용하여 문자열을 찾는 파이썬 예제코드입니다. 2023. 12. 3 최초작성 import re noun = 'C++' # 검색할 단어입니다. pattern = re.escape(noun) # 단어 검색에 사용할 패턴입니다. texts = ['PythonC++', 'C++', 'C++Julia', 'JaC++va'] # 지정한 문자열을 검색할 대상입니다. # 단어를 검색하여 결과를 보여줍니다. for passage in texts: matches = re.findall(pattern, passage) print(passage, matches) 실행시키면 C++을 발견한 문자열과 매치된 문자열이 C++ 였음을 보여줍니다. PythonC++ ['C++'] C++ ['C++'] C++Jul..
리스트 list1을 내림차순으로 정렬하는 동안, 리스트 list2와의 대응 관계를 유지하는 예제 코드입니다. 예를 들어, list1의 2와 list2의 d가 정렬 후에도 같은 인덱스를 갖게됩니다. 정렬전 - list1의 2와 list2의 ‘d’의 인덱스가 똑같이 0입니다. [2, 4, 1, 3] ['d', 'c', 'b', 'a'] 정렬후 - 정렬 후에도 list1의 2와 list2의 ‘d’의 인덱스가 똑같이 2입니다. [4, 3, 2, 1] ['c', 'a', 'd', 'b'] 2023. 12. 3 최초작성 # 2개의 리스트를 선언합니다. list1 = [2, 4, 1, 3] list2 = ['d', 'c', 'b', 'a'] # zip 함수를 사용하여 두 리스트의 항목을 튜플로 묶습니다. paired..
pickle을 사용하여 파이썬 리스트를 파일로 저장하고 다시 로드하는 파이썬 예제코드입니다. 2023. 12. 9 최초작성 리스트를 파일로 저장하기 현재 파이썬 코드 파일이 있는 위치에 list_a.pkl 파일이 생성됩니다. import pickle # 저장할 리스트 list_a = [1, 2, 3, 'a', 'b', 'c'] # 파일로 저장 with open('list_a.pkl', 'wb') as file: pickle.dump(list_a, file) 파일로부터 리스트 로드하기: 앞에서 생성한 list_a.pkl 파일을 로드하여 변수 list_a에 저장합니다. import pickle # 파일에서 리스트 로드 with open('list_a.pkl', 'rb') as file: list_a = pi..
동영상의 배경을 제거하고 움직이는 물체를 검출하는 데 사용할 수 있는 Background Subtraction 예제 입니다. OpenCV에서 제공하는 Background Subtraction 알고리즘 중 하나인 createBackgroundSubtractorKNN를 사용하여 테스트를 진행해봤습니다. 2018. 9. 22 최초작성 2023. 12. 10 최종작성 - 박스를 하나로 묶어주는 코드 추가 OpenCV Python - Background Subtraction 테스트 영상 https://youtu.be/_nUCgbOCUPw import cv2 import numpy as np import os, time def get_points(box): x, y, w, h = box return [(x, y),..
딕셔너리의 값을 기준으로 키를 정렬하는 예제코드입니다. 최초작성 2023. 12. 2 a = {} a[0] = 100 a[1] = 150 a[2] = 10 a[3] = 1000 # 딕셔너리의 값이 큰 순으로 키를 정렬 sorted_keys = sorted(a, key=a.get, reverse=True) print(sorted_keys) 실행결과 딕셔너리 a의 값이 큰 순서대로 키가 정렬된 것을 볼 수 있습니다. [3, 1, 0, 2]
지정한 디렉토리의 하위 디렉토리 목록을 구하는 파이썬 예제코드입니다. 2023. 11. 10 최초작성 import os # 하위 디렉토리 목록을 얻고 싶은 디렉토리를 지정합니다. current_directory = 'c:\\windows' # current_directory에 있는 파일과 디렉토리가 모두 출력됩니다. get_list = os.listdir(current_directory) print(get_list) print() subdirectories = [] for entry in get_list: # 파일 또는 디렉토리에 대한 전체 경로를 얻습니다. full_path = os.path.join(current_directory, entry) # 전체 경로로 디렉토리인지 검사해야 합니다. if os..
파이썬 리스트에서 특정값에 가까운 수를 찾는 예제입니다. 2023. 11. 4 최초작성 numbers = [10, 20, 30, 40, 50] target = 35 differences = [] for num in numbers: diff = abs(target - num) differences.append((diff, num)) min_difference = differences[0][0] for diff, num in differences: if diff < min_difference: min_difference = diff closest_numbers = [] for diff, num in differences: if diff == min_difference: closest_numbers.appen..
동영상 파일의 전체 프레임수를 알아내는 방법입니다. 2023. 6. 27 최초작성 import cv2 cap = cv2.VideoCapture('test.mp4') # 동영상의 전체 프레임 수입니다. frame_count = cap.get(cv2.CAP_PROP_FRAME_COUNT)
IOU(Intersection over union) Python 예제 코드입니다. 2023. 6. 13 최초작성 코드에서 사용할 경계상자 정보입니다. box1 = (0, 0, 100, 100) # x,y,w,h box2 = (0, 0, 50, 50) # x,y,w,h box3 = (150, 150, 50, 50) # x,y,w,h box1과 box2의 관계부터 살펴봅니다. IOU는 두 경계 집합의 교집합 면적과 두 경계 집합의 합집합 면적의 비율을 구합니다. box1과 box2의 IOU를 구합니다. box1과 box2의 교집합 면적은 box2의 면적이고 box1과 box2의 합집합의 면적은 box1의 면적입니다. 즉, 50*50 / 100*100 = 2500 / 10000 = 0.25 입니다. box1에..
OpenCV 의 원을 그리는 circle 함수를 C++과 Python에서 사용하는 방법을 설명합니다. 2015. 1. 2 - 최초 작성 2018. 7. 16 2019. 7. 17 2019. 8. 11 - C++ 코드 추가 2023. 4. 17 circle 함수는 다음과 같은 파라미터를 가집니다. cv.circle( img, 원이 그려질 이미지 center, 원의 중심 좌표 ( x, y ) radius, 원의 반지름 color, 원의 선 색 또는 원을 채울 색( B, G, R ) thickness, 선굵기(디폴트값 1) lineType, 디폴트값 cv.LINE_8(=8-connected line) shift ) 디폴트값 0 반지름 100, 선굵기 1인 빨간색 원 안에 파란색으로 채워진 반지름 10인 원을 ..