이번 영상에서는 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
C++, Python, Android에서 OpenCV의 Extra 모듈과 nonfree 모듈 사용하는 방법을 정리해보았습니다. 추가할 내용이나 틀린 점이 있으면 댓글로 알려주시면 감사하겠습니다. 현재 다음 두 개의 깃허브에서 OpenCV가 배포되고 있습니다. OpenCV는 다수의 모듈로 구성되어 있는데 지속적으로 관리가 되고 있는 모듈들은 [1]에서 배포하고 상대적으로 덜 관리되고 있는 모듈은 [2]에서 배포되고 있는 듯합니다. [2]에는 nonfree 알고리즘인 SIFT, SURF가 포함되어 있으며 [2]에서 안정화 된 모듈은 [1]로 이동되기도 합니다. [1] https://github.com/opencv/opencv [2] https://github.com/opencv/opencv_contrib C..
Tensorflow와 OpenCV를 사용하여 웹캠에 비춘 손글씨 숫자를 인식시켜보았습니다. 최초 작성 2019. 10. 1 관련 최근 포스트 [Machine Learning & Deep Learning/Tensorflow 강좌] - Keras와 OpenCV를 사용하여 손글씨 숫자 인식하기 CNN을 사용하여 인식 정확도가 좋아졌습니다. 01.py 손글씨 숫자를 인식을 위해 뉴럴 네트워크를 학습시키는 코드입니다. 실행결과 가중치를 파일로 저장합니다. import tensorflow as tf mnist = tf.keras.datasets.mnist (x_train, y_train),(x_test, y_test) = mnist.load_data() x_train, x_test = x_train / 255.0,..
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를 사용하여 책을 검출한 후, 정면에서 본 장면으로 변환합니다.
OpenCV의 딥러닝 모듈을 사용하여 안드로이드폰에서 딥러닝 네트워크를 실행하는 방법을 소개합니다. MobileNet-SSD detection network를 caffee로 구현한 것을 안드로이드 폰에서 실행시켜 봅니다. OpenCV 튜토리얼을 참고하여 진행했습니다. How to run deep networks on Android devicehttps://docs.opencv.org/master/d0/d6c/tutorial_dnn_android.html MobileNet-SSD detection network를 caffee로 구현한 것을 안드로이드 폰에서 실행시켜 봅니다. 영상에서 다음 21가지를 인식합니다. private static final String[] classNames = {"backgrou..
이미지에서 검출된 컨투어 영역에 특정 이미지를 텍스쳐로 넣는 예제입니다. 실행시키면 다음처럼 검출된 원 모양 컨투어 내부에 이미지 일부를 보여줍니다. 최초작성 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) # 그레..
간단히 Meanshift 이론을 설명하고 webcam과 video 영상에 ROI를 지정하여 동작하도록 C++로 작성된 Meanshift 예제 코드를 동작시켜 봅니다. 2019. 7. 2 2019. 7. 29 히스토그램생성시 Hue만 사용하도록 수정 . #include #include using namespace cv; using namespace std; // 아래 줄을 주석처리하면 비디오 영상에 대해 동작 //#define WEBCAM bool mouse_is_pressing = false; int start_x, start_y, end_x, end_y; int step = 0; Mat img_color; Rect roi; void swap(int* v1, int* v2) { int temp = *v1..