OpenCV
-
[opencv/python] 동영상 읽어와서 처리 후 다시 동영상으로 만들기Data Science/컴퓨터비전 2023. 6. 18. 19:22
동영상을 기반으로한 프로젝트들을 하다보면, 결과에 대해서 표현해 주어야하는 경우가 생긴다. 해당 포스팅에서는 이에 대한 내용을 간략히 정리해본다. 1. 동영상 프레임(이미지) 단위로 불러오기 cap = cv2.VideoCapture("동영상 주소") if cap.isOpened(): ret, img = cap.read() while ret: ret, img = cap.read() if not ret: break ## 이미지 처리 부분 # ~~ 2. 미사용 프레임에 대해서 생략하기 특정 프레임을 스킵하고 싶다면 아래의 명령어로 cap.read 보다 빠르게 스킵 가능하다 cap.grab() 3. 이미지 처리하기 예측모델의 동작이나 전/후처리 가 여기에 해당할 수 있다. 해당 포스팅에서는 모델부분은 다루지 않..
-
[python, opencv] 판별된 오브젝트가 특정 영역 내부에 있는지 판단하기(다각형 폴리곤을 이용한 마스크 만들기, 작업구역 탐지, 위험구역 탐지)Data Science/컴퓨터비전 2023. 5. 30. 19:25
다양한 모양의 작업구역 등을 설정하고 이에 탐지된 오브젝트가 구역내 소속되어 있는지 판단하는 방법을 고민하던 중 폴리곤으로 mask를 만들고 and 연산을 하면 간단하다고 하여 이를 작성해본다. 실제 이미지 및 오브젝트 검출 부분까지 글에 가져오면 너무 분량이 많아져서, 검출된 오브젝트의 좌표값이 있다고 가정하고 간단한 예시로 진행하겠다. 1. 이미지 120*100짜리 이미지가 있다고 가정한다. img_mask = np.zeros((100,120,1),dtype=np.uint8) plt.imshow(img_mask) 2. 특정 영역 마스크 구역 생성(작업구역, 위험구역 등) 작업구역과 같이 사용자가 지정하고싶은 특정 구역을 나타내는 마스크를 만들어준다. 여러개의 다각형으로 다양한 구역을 표현 가능하다. ..
-
[Python, opencv] 다각형 그리기 코드 구현(cv2.polylines)Data Science/컴퓨터비전 2023. 5. 30. 18:56
파이썬에서 다각형을 그리기 위해서는 opencv를 활용하여 아래와 같이 그릴 수 있다. import cv2 import numpy as np # 0으로 채워진 이미지(array) 생성 image = np.zeros((150,150,3),np.uint8) # 다각형의 좌표를 순서대로 입력, 입력 순서대로 선을 그리게 된다 pts1 = np.array([[20,20],[130,70],[90,90],[80,130]],dtype=np.int32) # cv2의 polylines로 다각형 그리기 # cv2.polylines(원본그림, 좌표리스트, 마지막점과 첫점 연결 여부, 선색, 선 굵기) cv2.polylines(image,[pts1],True,(255,255,255),4) plt.imshow(image) 세번..
-
error: OpenCV(4.6.0) /io/opencv/modules/core/src/dxt.cpp:4417: error: (-215:Assertion failed) type == CV_32FC1 || type == CV_64FC1 in function 'dct'프로그래밍/에러 처리 2022. 12. 2. 17:05
문제가 발생한 코드 lenna = cv2.imread('Lenna.png') lenna = cv2.cvtColor(lenna, cv2.COLOR_BGR2GRAY) dct_vn_lenna = cv2.dct(vn_lenna) 해결한 코드 이미지를 float32 타입으로 변경해주었다. lenna = cv2.imread('Lenna.png') lenna = cv2.cvtColor(np.float32(lenna), cv2.COLOR_BGR2GRAY) dct_vn_lenna = cv2.dct(vn_lenna)