반응형
Homography matrix를 이용한 planar rectification -  OpenCV Python 예제
OpenCV/OpenCV 강좌2023. 10. 20. 07:55Homography matrix를 이용한 planar rectification - OpenCV Python 예제

Homography matrix를 이용한 planar rectification를 C++로 구현한 다음 포스트의 내용을 파이썬 버전으로 만들어봤습니다. 이론적인 배경은 해당 포스트를 읽어보세요. Homography matrix를 이용한 planar rectification를 구현 예제 https://webnautes.tistory.com/2121 2023. 7. 1 최초작성 테스트 결과와 코드는 영상에서 확인하세요. https://youtu.be/8lVeReZmNK0 테스트에 사용한 이미지입니다.

Homography matrix를 이용한 planar rectification를 구현 예제
OpenCV/OpenCV 강좌2023. 10. 20. 07:54Homography matrix를 이용한 planar rectification를 구현 예제

4개의 대응점을 이용하여 Homography matrix를 구한 후, planar rectification를 구현해본 결과입니다. 1. 구현 알고리즘 2. 실행 결과 3. 전체 소스 코드 1. 구현 알고리즘 리차드 하틀리의 Multiple view geometry in computer vision의 4.1에 소개된 알고리즘을 구현했습니다. 여기에서 풀어야 하는 문제는 4개의 대응되는 점이 주어질 때, 를 만족하는 매트릭스 H를 구하는 것입니다. 하나의 대응점에 대한 관계식인 를 다음처럼 풀어 적을 수 있습니다. 4개의 대응점에 관계식을 이용하면 Homograpy matrix H를 구할 수 있습니다. 이를 위해 대응점 4개에 대한 관계식을 다음처럼 하나로 모아야합니다. H를 구하려면 매트릭스 A에 대한 S..

주사위 눈 개수 세는 OpenCV Python 예제 - 웹캡 영상 사용
OpenCV/OpenCV 강좌2023. 10. 20. 07:14주사위 눈 개수 세는 OpenCV Python 예제 - 웹캡 영상 사용

다음 포스트에 있는 주사위 눈 개수 세는 OpenCV Python 예제를 웹캠 영상에서 테스트해본 결과입니다. 주사위 눈 개수 세는 OpenCV Python 예제 https://webnautes.tistory.com/2107 2023. 5. 29 최초작성 테스트 결과입니다. https://youtu.be/GHNIXuXUgrM 사용한 전체 소스코드입니다. import cv2 import numpy as np def lab_equalizer(img, new_channel): lab = cv2.cvtColor(img, cv2.COLOR_BGR2LAB) l,a,b = cv2.split(lab) merged_lab = cv2.merge((new_channel,a,b)) bgr_img = cv2.cvtColor(m..

주사위 눈 개수 세는 OpenCV Python 예제
OpenCV/OpenCV 강좌2023. 10. 20. 07:13주사위 눈 개수 세는 OpenCV Python 예제

주사위 눈 개수를 세는 OpenCV Pytrhon 예제 코드입니다. 깃허브에서 오래전에 발견했던 코드를 수정했습니다. 주사위 눈을 세는 부분을 공유안해주셨지만 힌트가 포함되어 있어서 다행히 동작하도록 수정했네요. https://github.com/arnavdutta/OpenCV-Contours-Hierarchy/blob/master/OpenCV_Contours.ipynb 2023. 5. 28 최초작성 이진화 실행 결과입니다. 주사위 눈 검출 결과입니다. 주사위마다 표시된 빨간색 숫자는 눈의 개수이며 보라색 작은 숫자들은 검출된 컨투어의 인덱스 입니다. 왼쪽위에 표시된 28은 주사위 전체 눈 개수입니다. 전체 소스 코드입니다. import cv2 import numpy as np image = cv2.im..

OpenCV Python 알파 블렌딩 : 이미지 투명하게 만들어 합치기
OpenCV/OpenCV 강좌2023. 10. 20. 06:50OpenCV Python 알파 블렌딩 : 이미지 투명하게 만들어 합치기

OpenCV Python 알파 블렌딩을 사용하는 예제입니다. 2023. 7. 16 최초작성 코드 설명이 필요하시면 영상을 참고하세요. https://youtu.be/AtvANSfY734 사용한 이미지입니다. 밤풍경 https://pixabay.com/ko/photos/%ED%95%98-%EC%88%98-%ED%95%98%EB%8A%98-%EB%B3%84-%EC%BD%94%EC%8A%A4%EB%AA%A8%EC%8A%A4-4526277/ 기타치는 고양이 https://pixabay.com/ko/illustrations/고양이-기타-음악-명음-7631143/ 밤풍경 이미지와 빈 이미지에 노란색 원을 그린 것을 합성하려고 합니다. 본 포스트에서는 addWeighted함수를 사용하기 때문에 두 이미지의 크기가 동..

두 직선 사이의 각도 구하는 OpenCV Python 예제
OpenCV/OpenCV 강좌2023. 10. 18. 22:29두 직선 사이의 각도 구하는 OpenCV Python 예제

두 직선 사이의 각도를 구하는 OpenCV Python 예제 코드입니다. 2023.2.25 최초작성 두 개의 직선을 그리면 사이 각을 출력해줍니다. 왼쪽 마우스 버튼을 클릭하여 첫번째 직선의 출발점을 지정합니다. 마우스 왼쪽 버튼을 클릭하여 첫번째 직선의 끝점을 지정해주면 직선이 그려집니다. 마우스 왼쪽 버튼 클릭으로 두번째 직선의 시작점을 지정해줍니다. 마우스 왼쪽 버튼 클릭으로 두번째 직선의 끝점을 지정해주면 직선이 그려집니다. 터미널에 두 직선의 사이각이 출력됩니다. 직선으로 생성되는 두 개의 각도 중 작은 각도가 출력됩니다. 스페이스바 키를 누르면 화면이 지워집니다. 이제 다시 직선을 그려서 각도를 다시 출력해볼 수 있습니다. 전체 코드입니다. import cv2 import numpy as np..

컨투어 내부에 점이 있는지 파악하는 OpenCV Python 예제
OpenCV/OpenCV 강좌2023. 10. 18. 22:28컨투어 내부에 점이 있는지 파악하는 OpenCV Python 예제

OpenCV 컨투어 내부에 점이 있는지 파악하는 Python 예제 코드입니다. 2023. 4. 17 최초작성 아래 그림에서 컨투어는 파란 도형 주변에 파란색 선으로 검출된 상태입니다. 도형 내부를 클릭하면 양수가 출력되며 도형 외부를 클릭하면 음수가 출력됩니다. 수치는 컨투어에 근접할 수록 작은 숫자가 됩니다. 컨투어 위에선 0이 됩니다. 전체 소스 코드입니다. import cv2 def mouse_event(event, x, y, flags, param): global cx,cy,dist, img, img_color if event == cv2.EVENT_FLAG_LBUTTON: img = img_color.copy() cx = x cy = y dist = cv2.pointPolygonTest(cont..

OpenCV에서 원하는 프레임부터 동영상 재생하기
OpenCV/OpenCV 강좌2023. 10. 18. 21:43OpenCV에서 원하는 프레임부터 동영상 재생하기

OpenCV에서 동영상 파일을 재생시 원하는 프레임부터 시작하도록 하는 예제 코드입니다. 2023. 7. 27 최초작성 실행 결과입니다. 동영상 왼쪽 상단에 “현재 프레임 / 전체 프레임 수” 를 출력해줍니다. 동영상 파일을 로드하여 300 프레임부터 플레이를 시작하도록 하고 있습니다. frame_num = 300 cap.set(cv2.CAP_PROP_POS_FRAMES, frame_num) 플레이하기 전에 동영상 플레이 시작위치를 가져와서 프레임 출력의 시작 위치로 사용하도록 합니다. # 첫 프레임 위치를 가져옵니다. 인덱스가 0부터 시작하므로 1을 더해줍니다. frame_count = int(cap.get(cv2.CAP_PROP_POS_FRAMES)) + 1 전체 코드입니다. import cv2 ca..

Visual Studio 2022에서 GSL(GNU Scientific Library) 사용하기
OpenCV/OpenCV 강좌2023. 10. 17. 22:30Visual Studio 2022에서 GSL(GNU Scientific Library) 사용하기

Visual Studio 2022를 위해 미리 컴파일된 GSL 라이브러리를 사용해본 결과입니다.. 2019.3.21 최초작성 Visual Studio 2017 사용 2022.2.25 최종작성 Visual Studio 2022 사용 GNU 공식 홈페이지(https://www.gnu.org/software/gsl/ )에서는 소스 코드 패키지만 배포하고 있기 때문에 사용하려면 플랫폼에 맞추어 컴파일 하는 작업이 필요합니다. 다행스럽게도 찾아보면 윈도우에서 많이 사용되는 Visual Studio, MinGW등을 위해 컴파일한 결과물인 바이너리 패키지를 배포하는 분들이 있습니다. 이번에도 찾아보니 몇군데 있었지만 아래 링크에 Visual Studio 2017 64비트 버전을 위해 빌드된 GSL 라이브러리가 있어서..

OpenCV/OpenCV 강좌2023. 10. 17. 22:12OpenCV에서 VideoCapture사용시 read 함수는 계속 실행해야 함

OpenCV에서 VideoCapture를 사용하여 동영상 파일이나 RTSP 카메라 접근시 read 함수는 계속 실행시켜야 하는 듯 보입니다. 잠시 테스트해본 바로는 읽고 있지 않는 동안의 영상을 skip 하지 않습니다. 일부러 잠시 대기했다가 read함수를 실행하면 바로 전에 가져왔던 장면의 다음 장면을 가져오네요. 2022. 1. 28. 최초작성

반응형
image