Android NDK와 OpenCV를 사용하여 갤러리에 있는 이미지를 불러와 영상처리하는 예제입니다. 바를 이용하여 Canny의 스레숄드를 변경하면 바로 결과를 볼 수 있습니다. 2016.12.16 최초작성 . . . . 2019. 2. 8. 갤러리에서 이미지 불러오도록 수정 2019. 5. 5. 스레숄드 조정할 수 있는 바를 추가 2020. 9. 22 androidx 관련 수정 2023. 11. 26 . 외장 저장공간 접근 권한을 사용하기 때문에 처음 실행하면 권한 요청을 합니다. 상단에 보이는 디폴트 이미지를 클릭하면 갤러리에서 이미지를 불러올 수 있습니다. 이미지를 불러올 때 사용할 앱을 선택합니다. 갤러리에서 이미지를 선택합니다. 상단에 갤러리에서 선택한 이미지가 보입니다. 에지 검출하기를 선택하..
NDK를 지원하는 안드로이드 프로젝트를 생성한 후, OpenCV 라이브러리를 추가하여 사용하는 방법을 설명합니다. 간단한 예제로 OpenCV Java API에서 캡처한 영상을 OpenCV C++ API에서 그레이스케일 영상으로 변환하고 다시 OpenCV Java API에서 화면에 보여줍니다. 아래 히스토리에 명시된 버전과 다른 버전 사용시 문제가 발생할 가능성이 있습니다. 2016.11.20 : 최초 작성 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2019. 8. 8 OpenCV 4.1.1를 위해 카메라 코드를 수정하고 android.support 대신에 androidx를 사용합니다. 2020. 1. 19 OpenCV ..
OpenCV.jl을 사용하여 Julia에서 OpenCV를 사용하는 방법을 다루고 있습니다. 2023. 11. 20 최초작성 다음 포스트를 참고하여 Julia 개발 환경을 구성하세요. Visual Studio Code 사용한 Julia 개발 환경만들기(Windows / Ubuntu / Macbook M1) https://webnautes.tistory.com/2216 OpenCV 패키지 설치 방법을 고려해보면 Windows / Ubuntu / Macbook M1에서 동일하게 진행 가능할 것으로 보입니다. 다음 운영체제에서 진행했습니다. Windows Macbook M1 Windows 윈도우 키를 누른 후, code를 입력하여 보이는 Visual Studio Code를 클릭하여 실행합니다. ctrl + sh..
Ubuntu에 설치된 Visual Studio Code에서 CMake를 사용하여 OpenCV 코드를 컴파일 하는 방법을 설명합니다. 2019. 5. 9 : CMakeLists.txt 오류 수정 2019. 7. 8 2023. 8. 9 1. 다음 포스팅을 참고하여 Visual Studio Code 설치 및 C/C++ 개발환경 설정을 진행합니다. Visual Studio Code를 사용한 C/C++ 개발환경 만들기-(Windows/Ubuntu) https://webnautes.tistory.com/1854 2. cmake를 설치해줍니다. $ sudo apt-get install cmake 3. Visual Studio Code 메뉴에서 파일 > 폴더 열기를 선택합니다. 폴더 열기 창에서 오른쪽 위에 보이는 폴..
OpenCV 빌드하여 설치 후 Python에서 cv 모듈을 로드시 다음 에러가 발생한 경우 해결한 방법입니다. ModuleNotFoundError: No module named 'cv2' 상황에 따라선 다른 방법이 필요할 수도 있습니다. 2022. 11. 25 최초작성 2022. 11. 26 우선 cv2 모듈 파일 위치를 찾았습니다. find /usr | grep cv2 명령으로 검색하여 다음처럼 찾았습니다. /usr/local/lib/python3.8/site-packages/cv2.cpython-38-x86_64-linux-gnu.so 다음처럼 복사해주고 나서 해결되었습니다. 파이썬마다 라이브러리 모듈을 찾을데 검색되는 디폴트로 사용하는 dist-packages 디렉토리 위치가 다른데 엉뚱한 곳에 복..
동영상 파일의 전체 프레임수를 알아내는 방법입니다. 2023. 6. 27 최초작성 import cv2 cap = cv2.VideoCapture('test.mp4') # 동영상의 전체 프레임 수입니다. frame_count = cap.get(cv2.CAP_PROP_FRAME_COUNT)
IOU(Intersection over union) Python 예제 코드입니다. 2023. 6. 13 최초작성 코드에서 사용할 경계상자 정보입니다. box1 = (0, 0, 100, 100) # x,y,w,h box2 = (0, 0, 50, 50) # x,y,w,h box3 = (150, 150, 50, 50) # x,y,w,h box1과 box2의 관계부터 살펴봅니다. IOU는 두 경계 집합의 교집합 면적과 두 경계 집합의 합집합 면적의 비율을 구합니다. box1과 box2의 IOU를 구합니다. box1과 box2의 교집합 면적은 box2의 면적이고 box1과 box2의 합집합의 면적은 box1의 면적입니다. 즉, 50*50 / 100*100 = 2500 / 10000 = 0.25 입니다. box1에..
OpenCV 의 원을 그리는 circle 함수를 C++과 Python에서 사용하는 방법을 설명합니다. 2015. 1. 2 - 최초 작성 2018. 7. 16 2019. 7. 17 2019. 8. 11 - C++ 코드 추가 2023. 4. 17 circle 함수는 다음과 같은 파라미터를 가집니다. cv.circle( img, 원이 그려질 이미지 center, 원의 중심 좌표 ( x, y ) radius, 원의 반지름 color, 원의 선 색 또는 원을 채울 색( B, G, R ) thickness, 선굵기(디폴트값 1) lineType, 디폴트값 cv.LINE_8(=8-connected line) shift ) 디폴트값 0 반지름 100, 선굵기 1인 빨간색 원 안에 파란색으로 채워진 반지름 10인 원을 ..
OpenCV에서 사용하는 Top Left를 원점으로 하는 좌표와 Bottom Left를 원점으로 하는 좌표 사이에 변환을 하는 예제 입니다. 2023. 4. 29 최초작성 원점을 Bottom Left로 바꾼 후, 모서리 4군데의 좌표를 출력했습니다. 전체 코드입니다. convert_coordinate 함수를 사용하여 원점이 TOP LEFT인 좌표계와 원점이 BOTTOM LEFT인 좌표계를 서로 변환할 수 있습니다. 아래 코드에서는 원점이 BOTTOM RIGHT인 좌표를 원점이 TOP LEFT인 좌표로 변환하여 화면에 원과 좌표를 출력합니다. import cv2 import numpy as np # TOP LEFT BOTTOM LEFT def convert_coordinate(x,y): x = x y = ..
Visual Studio Code에서 손쉽게 OpenCV 코드를 컴파일하고 테스트하는 방법을 다룹니다. 2020. 12. 6 최초작성 2021. 4. 21 기본 셸 관련 에러 해결 2021. 7. 17 VIsual Studio Code 업데이트 후, CMAKE 사용시 바뀐점 반영 2021. 9. 15 CMakeLists.txt에서 누락된 부분 수정 2021. 10. 8 Visual Studio Code 바뀐 부분 수정 2023. 3. 25 윈도우 환경에서 C++로 작성된 OpenCV 코드를 컴파일하기 위해 보통 Visual Studio를 설치하여 사용합니다. 하나의 프로젝트만 진행하는 경우에는 Visual Studio에서 제공하는 개발환경이 필요할 수 있습니다. 하지만 간단히 테스트용으로 사용시에는 매번..