본문 바로가기

python11

[자율주행] djitellopy & opencv Object Detection - (2) Object Detection Tello 카메라를 통해 받아온 영상의 색상을 검출하는 과정은 다음과 같다. Camera&OpenCV로 받아온 BGR 컬러 영상을 HSV로 변환 설정된 HSV 채널 이진화 중점 찾기 import cv2 hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV) lower_red1 = np.array([0//2, 255//3, 40]) upper_red1 = np.array([15//2, 255, 200]) lower_red2 = np.array([345//2, 255//3, 40]) upper_red2 = np.array([360//2, 255, 200]) rowMask = cv2.inRange(hsv, lower_red1, upper_red1) upp.. 2023. 8. 6.
[자율주행] djitellopy & opencv Object Detection - (1) djitellopy와 opencv를 통한 비디오 스트림 예제 drone.streamon() while True: img = drone.get_frame_read().frame() # 이미지 절대적 크기 지정 img = cv2.resize(img,(360,240)) # imshow("name", 변수) cv2.imshow("Image",img) # delay, 단위: millisecond cv2.waitKey(1) resize python: cv.resize( src, dsize[, dst[, fx[, fy[, interpolation]]]] ) -> dst - src: input image, 원본 이미지 - dts: output image, src와 동일한 유형 - dsize: output image s.. 2023. 8. 6.
[백준/11004] K번째 수 | Python 정렬 함수의 알고리즘 K번째 수 Baekjoon Online Judge Baekjoon Online Judge 프로그래밍 문제를 풀고 온라인으로 채점받을 수 있는 곳입니다. www.acmicpc.net 알고리즘 N(1 2023. 8. 2.
[백준/1032] 명령 프롬프트 | 문자열 비교 명령 프롬프트 알고리즘 문자열 비교 알고리즘이다. 이런 문제를 풀 때는 모든 보기를 다 비교해야 할지, 일부로도 해결이 가능한지 판단한다. 어차피 N의 범위가 적으니까 할 수 있는 건 다 해서 풀어낸다. 전체 코드 내가 작성한 코드 import sys; input=sys.stdin.readline n=int(input()) file=[input() for _ in range(n)] tmp=[] for i in range(n): for j in range(i+1, n): if file[i] != file[j]: a = file[i] b = file[j] for k in range(len(a)): for l in range(len(b)): if a[k] != b[k] : tmp.append(k) break .. 2023. 7. 4.
[백준/1009] 분산 처리 | 반복되는 숫자 어떻게 효율적으로 처리할까  분산 처리 알고리즘 승수의 마지막 자리 반복 0 0 1 1 2 2 4 8 6 3 3 9 7 1 4 4 6 5 5 6 6 7 7 9 3 1 8 8 4 2 6 9 9 1 수의 끝자리만 가져오는 두 가지 방법 문자열 활용 a = str(a) a = int(a[-1]) 나머지 활용(%10, %100, %1000, ....) a %= 10 # 끝 한 자리만 a %= 100 # 끝에서부터 2개 전체 코드 import sys; input=sys.stdin.readline t=int(input()) for _ in range(t): a,b = map(int,input().split()) a = str(a) a = int(a[-1]) if a == 1 or a == 5 or a == 6: print(a) # 4 번씩.. 2023. 7. 3.
[백준/10158] 개미 | 점화식 그게 뭔데 그거 어떻게 하는 건데 10158 개미 알고리즘 t의 범위가 1 ≤ t ≤ 200,000,000이므로 완전탐색을하면 타임아웃이다. 그렇다면 어떤 점화식을 세워서 문제를 풀어야 한다는 건데 1. x와 y의 독립성 이 문제는 1초의 시간이 지날 때 x = (x+1) or (x-1)이 되고 y = (y+1) or (y-1)이 된다. 따라서 각각의 값이 독립적으로 움직인다는 결론에 도달할 수 있다. 2. 이동 횟수와 이동 거리의 관계 x좌표와 y좌표는 각각 t만큼 이동을 하게 되고, 이 이동 주기가 2*w, 2*h이다. 아래와 같은 그래프를 보면 이해가 쉽다. 따라서 이동 자체에 대한 점화식은 다음과 같다. (p+t) % 2*w (q+t) % 2*h 이제 이동 좌표에 관한 점화식을 얻었으니, 거리를 구하면 된다. 거리는 수학적으로 뺄.. 2023. 6. 29.
[백준/9252] 음식물 피하기 | 배운 점이 많은 문제 1743 음식물 피하기 알고리즘 그냥 dfs로 푸는데 cnt 처리방식 구현이 쉽게 떠오르지 않아서 고민을 좀 했다. 바로 이 부분 def dfs(x,y) : cnt = 1 visited[x][y] = True for dx, dy in d : nx, ny = x+dx, y+dy # 여기가 연결되는 부분이니까 cnt += 1 처리를 해주고, if 0 2023. 5. 12.
[Python] 파이썬 딕셔너리 개요 '코드트리'에서 파이썬 딕셔너리를 공부한 내용이다 코드트리 자료가 생각보다 이해하기 정말 쉽게 되어있고, 중요한 부분을 잘 집어줘서 기록하고 두고두고 볼 예정 파이썬 딕셔너리(Python Dictionary) 파이썬 딕셔너리는 검색/삽입/삭제에 유용한 HashMap 자료구조이다. * HashMap: (key, value) 쌍으로 이루어져 있고, 순서와 상관없이 빠른 검색/삽입/삭제(시간복잡도 O(1))가 가능한 자료구조 딕셔너리 선언 파이썬 딕셔너리는 다음과 같이 선언한다. d1 = dict() d2 = {} d3 = { 'apple' : 1, 'banana' : 2, 'grape' : 3 } key와 value 딕셔너리의 기본적인 구조는 dic_name[key] = value 이다. key 값을 .. 2023. 2. 13.
[Python] 파이썬 lambda(익명함수) 함수로 정렬하기 파이썬 정렬 정렬 메소드인 sort()와 함수 sorted()는 디폴트 값이 오름차순이고, 내림차순으로 정렬을 하기 위해서 reverse 인자를 추가한다. arr = [10, 3, 4, 2, 100] arr.sort(reverse = True) print(arr) # [100, 10, 4, 3, 2] arr = [10, 3, 4, 2, 100] arr.sorted(arr, reversed = True) print(arr) # [100, 10, 4, 3, 2] * reversed 인자 이외에도 [::-1]을 이용하여 정렬할 수 있다. lambda(익명함수) 어떤 리스트를 정렬하기 위해서는 다양한 기준을 활용할 수 있는데, reversed 인자처럼 key 인자를 활용하면 된다. 여기서 lambda(익명 함수.. 2023. 1. 18.
[python] 파이썬 정렬 함수 sort와 sorted의 차이 우리가 어떤 수들을 정렬하고 싶을 때 sort와 sorted 두 가지 방법을 활용할 수 있다. 같은 기능을 하는 두 함수는 왜 따로 존재할까? 두 메서드의 차이점에 대해서 알아보자. 1. sort '리스트'에만 사용할 수 있는 오름차순 정렬 메소드이다. list_name.sort() 형식으로 선언한다. reverse = True 인자를 사용해서 내림차순으로도 출력이 가능하다. 또한 print(l.sort())를 하면, 'None'이라는 값을 출력하는 걸 알 수 있는데, sort 메소드는 아무것도 리턴하는 것이 없고, 기존 리스트 자체를 정렬하기 때문이다. 2. sorted sorted는 리스트 뿐만 아니라 다양한 자료구조에서 사용 가능하다. sorted(list_name) 형식으로 선언한다. revers.. 2023. 1. 9.
[python] 파이썬 출력 tip! 파이썬을 사용하다보면 여러가지 출력 팁이 유용할 때가 있다. 오늘은 출력팁에 대해서 알아보자. 1. end 일반적으로 파이썬에서 print 함수를 사용하여 여러 케이스를 출력하면, 다음과 같이 출력된다. n = int(input()) for i in range(1,n+1): print('Hello World') 이유는 print 함수는 자동적으로 줄바꿈을 해서 출력을 하기 때문이다. 줄바꿈 없이 출력을 하고싶으면, end라는 인자를 활용하면 된다. n = int(input()) for i in range(1,n+1): print('Hello World', end = ', ') 깔끔하게 ', ' 단위로 한줄에 출력되는 걸 확인할 수 있다. 2. format 출력을 할 때 문자열 사이에 변수를 끼워야 할 때.. 2023. 1. 9.