유튜브 영상의 댓글로 코드 실행시 다음과 같은 에러가 난다고 알려주신 분이 있어서 확인해보았습니다. The convex hull indices are not monotonous, which can be in the case when the input contour contains self-intersections in function 'cv::convexityDefects' 유튜브 영상에서 설명하고 있는 다음 포스트의 코드에서 발생한 에러입니다. OpenCV를 사용하여 손 검출 및 인식하기(Hand Detection and Recognition using OpenCV)https://webnautes.tistory.com/1378 코드 작성시 테스트한 버전에서는 문제 없던 코드가 OpenCV 4.3.0에서..
OpenCV에 포함되어 있는 SIFT 알고리즘을 사용하여 사진 속에서 원하는 물체를 찾는 과정을 진행해보았습니다. 특허가 만료되어 SIFT가 OpenCV 4.4.0부터는 Extra 모듈(contrib)에서 메인 모듈로 옮겨졌습니다.별도의 빌드없이 미리 빌드되어 배포되는 OpenCV를 사용하여 SIFT를 사용할 수 있게 되었습니다. 영상에서는 OpenCV에 포함된 SIFT를 실행시키기 위해 필요한 모든 과정을 설명합니다.
OpenCV Python을 사용하여 stitching을 구현해보았습니다. 스티칭(stitching)은 같은 장소 또는 같은 객체를 촬영한 여러 장의 사진에서 공통적인 부분을 찾아 이미지를 하나로 연결하는 알고리즘입니다. 결과적으로 아래 이미지처럼 파노라마 이미지가 만들어 집니다. 포스트의 코드는 다음 두 곳의 코드를 기반으로 작성되었습니다. https://github.com/opencv/opencv/blob/master/samples/python/find_obj.py https://www.pyimagesearch.com/2016/01/11/opencv-panorama-stitching/ 영상에 코드 설명이 되어 있습니다. ''' https://github.com/opencv/opencv/blob/mast..
이번 영상에서는 윈도우즈 10에서 화면을 캡처한 결과를 입력으로 사용하여 OpenCV Python에서 탬플릿 매칭을 해보았습니다. # pip install pyautogui # pip install opencv-python import cv2 as cv import numpy as np import pyautogui cv.namedWindow("result"); cv.moveWindow("result", 0, 500); img_piece = cv.imread('dino.png', cv.IMREAD_COLOR) h,w = img_piece.shape[:2] while 1: pic = pyautogui.screenshot(region=(0, 0, 700, 500)) img_frame = np.array(pi..
이번 영상에서는 OpenCV를 사용하여 파란공의 위치를 트래킹하여 영상에 그림을 그려보는 코드를 소개합니다. import cv2 as cv def draw_ball_location(img_color, locations): for i in range(len(locations)-1): if locations[0] is None or locations[1] is None: continue cv.line(img_color, tuple(locations[i]), tuple(locations[i+1]), (0, 255, 255), 3) return img_color cap = cv.VideoCapture(0) list_ball_location = [] history_ball_locations = [] isDraw ..
OpenCV를 사용하여 바닥에 놓은 트럼프 카드를 인식하는 간단한 프로젝트를 만들어 보았습니다. 실행결과와 코드 설명은 유튜브 영상을 참고하세요. 테스트에 사용한 이미지입니다.
OpenCV Python API를 사용하여 카메라로부터 영상을 캡처하는 경우.. 프로그램 종료시 보이는 메시지입니다. 프로그램을 실행하는데 문제가 없어서 무시해도 되지만.. 다음처럼 해서 안보이도록 할 수 있습니다. 윈도우의 경우 해결방법입니다. 우분투의 경우에도 같은 문제가 발생하는지 아직 확인을 못해봤습니다. cap = cv.VideoCapture(0, cv.CAP_DSHOW) 찾아보니 카메라로부터 캡처시 사용할 벡엔드를 지정하는 거라고 하네요. 사용가능한 전체 벡엔드 목록은 아래 링크에서 확인할 수 있습니다. https://docs.opencv.org/master/d4/d15/group__videoio__flags__base.html#ga023786be1ee68a9105bf2e48c700294d
OpenCV를 사용하여 손을 검출 및 인식하는 방법에 대해 다룹니다. 현재 두가지 방법으로 코드가 작성되었습니다. Background Subtraction을 사용한 방법과 HSV 공간에서 살색을 검출한 방법입니다. 다음 에러가 발생하는 경우 아래 포스트를 참고해보세요 The convex hull indices are not monotonous, which can be in the case when the input contour contains self-intersections in function 'cv::convexityDefects [OpenCV / Python ] convexityDefects 함수에 convex hull indices are not monotonous ... self-inters..
안녕하세요. 웹나우테스입니다 : ) OpenCV를 사용하여 책을 검출한 후, 정면에서 본 장면으로 변환합니다.
이미지에서 검출된 컨투어 영역에 특정 이미지를 텍스쳐로 넣는 예제입니다. 실행시키면 다음처럼 검출된 원 모양 컨투어 내부에 이미지 일부를 보여줍니다. 최초작성 2019. 7. 23 최종작성 2019. 8. 18 테스트에 사용한 이미지입니다. 전체 소스 코드입니다. Python import cv2 as cv import numpy as np # 마스크로 사용할 이미지와 텍스처로 사용할 이미지를 불러옵니다. img_input_mask = cv.imread('1.png') img_input_texture = cv.imread('2.png') # 마스크로 사용할 이미지를 바이너리 이미지로 변환합니다. img_gray = cv.cvtColor(img_input_mask, cv.COLOR_BGR2GRAY) # 그레..