MinGW 용으로 OpenCV 4.5.1을 빌드하고 Visual Studio Code에서 OpenCV 코드를 컴파일하는 방법을 다룹니다. 2021. 4. 21 최초작성 1. 아래 링크에서 x86_64-posix-seh를 다운로드하여 설치합니다. https://sourceforge.net/projects/mingw-w64/files/mingw-w64/ 2. mingw64 폴더를 C:\에 복사해주고 시스템 변수 path에 C:\mingw64\bin를 추가합니다. 3. 명령 프롬프트에서 gcc를 실행시켜 봅니다. C:\Users\jjlee>gcc -v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=C:/mingw64/bin/../libexec/gcc/x..
Homography matrix를 이용한 planar rectification를 C++로 구현한 다음 포스트의 내용을 파이썬 버전으로 만들어봤습니다. 이론적인 배경은 해당 포스트를 읽어보세요. Homography matrix를 이용한 planar rectification를 구현 예제 https://webnautes.tistory.com/2121 2023. 7. 1 최초작성 테스트 결과와 코드는 영상에서 확인하세요. https://youtu.be/8lVeReZmNK0 테스트에 사용한 이미지입니다.
다음 포스트에 있는 주사위 눈 개수 세는 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 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 알파 블렌딩을 사용하는 예제입니다. 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 개발 환경 만들고 간단한 예제 프로그램을 실행하는 과정을 다룹니다. 2023. 6. 16 최초작성 1. 우선 다음 포스트를 참고하여 파이썬 개발환경을 만드세요. Visual Studio Code와 Miniconda를 사용한 Python 개발 환경 만들기( Windows, Ubuntu) https://webnautes.tistory.com/1842 2. 이제 Visual Studio Code에서 OpenCV Python을 위한 폴더를 생성합니다. 메뉴에서 File > Open Folder를 선택한 후, 원하는 위치로 이동하여 왼쪽 위에 있는 새 폴더를 클릭합니다. 여기에선 opencv 폴더를 생성했습니다. 3. 새로 생성한 opencv 폴더로 이동한 후, 오른쪽 하단에 있는 폴더 ..
두 직선 사이의 각도를 구하는 OpenCV Python 예제 코드입니다. 2023.2.25 최초작성 두 개의 직선을 그리면 사이 각을 출력해줍니다. 왼쪽 마우스 버튼을 클릭하여 첫번째 직선의 출발점을 지정합니다. 마우스 왼쪽 버튼을 클릭하여 첫번째 직선의 끝점을 지정해주면 직선이 그려집니다. 마우스 왼쪽 버튼 클릭으로 두번째 직선의 시작점을 지정해줍니다. 마우스 왼쪽 버튼 클릭으로 두번째 직선의 끝점을 지정해주면 직선이 그려집니다. 터미널에 두 직선의 사이각이 출력됩니다. 직선으로 생성되는 두 개의 각도 중 작은 각도가 출력됩니다. 스페이스바 키를 누르면 화면이 지워집니다. 이제 다시 직선을 그려서 각도를 다시 출력해볼 수 있습니다. 전체 코드입니다. import cv2 import numpy as np..
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에서 동영상 파일을 재생시 원하는 프레임부터 시작하도록 하는 예제 코드입니다. 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..
OpenCV에서 VideoCapture를 사용하여 동영상 파일이나 RTSP 카메라 접근시 read 함수는 계속 실행시켜야 하는 듯 보입니다. 잠시 테스트해본 바로는 읽고 있지 않는 동안의 영상을 skip 하지 않습니다. 일부러 잠시 대기했다가 read함수를 실행하면 바로 전에 가져왔던 장면의 다음 장면을 가져오네요. 2022. 1. 28. 최초작성