두 장의 이미지의 투명도를 조정하여 두 개의 이미지가 겹쳐보이게 하는 블렌딩(Blending)을 구현한 OpenCV Python 예제 코드를 테스트하기 쉽도록 pyQt5로 작성된 UI를 사용합니다. 2024. 8. 28 최초작성 OpenCV Python만을 사용하여 구현한 코드는 아래 포스트에서 구현되어 있습니다. OpenCV Python 강좌 - 두 개의 이미지 더하기, 블렌딩https://webnautes.tistory.com/1245pyQt5를 사용하여 이미지의 투명도를 조정하게 만든 예제를 실행시키면 슬라이더를 사용하여 두 장의 이미지의 투명도를 조정할 수 있습니다.실행하면 두 장의 이미지가 겹쳐서 보이게 됩니다. 2장의 이미지의 투명도가 각각 50%이기 때문입니다. 어느 한쪽으로 이동하면 ..
OpenCV를 빌드하여 Raspberry Pi 5에 설치하는 방법을 다룹니다. Raspberry Pi 4에서 진행했던 대로 Raspberry Pi 5에서 그대로 진행해서 문제없었습니다. 이 문서대로하면 Raspberry Pi 4 에서도 동일하게 동작합니다. 1. 기존 OpenCV 버전 제거2. 기존 설치된 패키지 업그레이드3. OpenCV 컴파일 전 필요한 패키지 설치4. OpenCV 설정과 컴파일 및 설치5. OpenCV 설치 결과 확인 5.1. C/C++ 5.2. Python2016. 5. 4 최초작성~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2021. 2. 19 Raspberry Pi 4에서 진행2021. 11. 22 최종작성 - 2021년 10..
Ubuntu 22.04에 CUDA를 사용하도록 OpenCV 설치하는 방법을 다룹니다. 2022. 12. 2 최초작성2024. 1. 14 Python을 사용하여 OpenCV에서 CUDA 사용가능한지 확인CUDA 설치다음 포스트를 참고하여 CUDA 설치를 진행하세요. Ubuntu 22.04에 CUDA 11.8 설치하는 방법https://webnautes.tistory.com/1844OpenCV 설치1. 기존에 설치된 패키지를 업그레이드합니다. $ sudo apt-get update$ sudo apt-get upgrade2. 추가로 필요한 패키지들을 설치합니다. $ sudo apt-get install build-essential cmake$ sudo apt-get install pkg-config$ s..
OpenCV에서 CUDA를 사용해봅니다. 2024. 6. 29 최초작성허프 변환을 GPU와 CPU에서 실행한 시간을 측정한 결과입니다. GPU를 사용했을때 짧은 시간이 걸리는 것을 볼 수 있습니다. CPU 허프 변환 시간 : 0.031784772872924805 secondsGPU 허프 변환 시간 : 0.003282308578491211 seconds테스트에 사용한 전체 코드입니다. OpenCV에서 CUDA를 사용하도록 컴파일을 하는 것이 필요합니다. 다음 포스트를 참고하세요. Ubuntu 22.04에 CUDA 사용하는 OpenCV 설치하는 방법https://webnautes.tistory.com/1876import cv2import numpy as npimport time# 큰 이미지를 사용해야 G..
FFmpeg를 사용하여 webcam을 RTSP 스트리밍하고 OpenCV에서 해당 영상을 확인하는 과정을 다룹니다. 2021. 6. 10 최초작성2024. 6. 23 최종작성1. 아래 링크에서 mediamtx windows 버전( 이름에 windows_amd64가 붙은 것)을 다운로드하여 적당한 곳에 압축을 풀어줍니다. https://github.com/bluenviron/mediamtx/releases mediamtx.exe를 실행합니다. 접속을 허용하냐고 물어보면 예를 클릭합니다. 다음처럼 실행됩니다. 2. 아래 링크에서 윈도우 버전 ffmpeg-release-full.7z를 다운로드합니다.https://www.gyan.dev/ffmpeg/builds/ 압축을 풀어 ffmpeg-7.0-full_..
OpenCV Python 마우스 이벤트 예제입니다.최초작성 2024. 5. 16마우스 커서를 움직여서 왼쪽 마우스 버튼을 누르면 해당 위치에 초록색점이 찍히고 터미널에 좌표가 출력됩니다. 터미널에 초록색 점에 해당되는 좌표가 출력됩니다. (x,y)=(167, 132)(x,y)=(352, 283)전체 소스코드입니다. import cv2import numpy as npimport queuedef mouse_callback(event, x, y, flags, param): # 마우스 왼쪽 버튼 클릭시만 감지합니다. if event == cv2.EVENT_LBUTTONDOWN: print(f'(x,y)=({x}, {y})') # 마우스 커서 좌표를 큐에 삽입합니다. ..
두 점 사이의 각도 구하는 OpenCV Python 예제 코드입니다.2024. 4. 25 최초작성 실행결과는 유튜브 영상을 참고하세요.https://youtu.be/T2InIT7b7_U?si=gxb6zTbeT8164cap 두 점 사이의 각도는 아래 그림처럼 표시됩니다.이미지 출처 https://stackoverflow.com/questions/28226833/get-angle-in-terms-of-360-degrees영상에서 사용한 전체 코드입니다. import cv2import numpy as npimport queueimport math# 마우스 이벤트를 캡처합니다.def mouse_callback(event, x, y, flags, param): # 왼쪽 마우스 버튼 클릭 이벤트를 캡처..
영상 파일을 이미지 파일로 변경한 것을 다시 영상 파일로 바꿀 필요가 있어서 코드를 작성해보았습니다. 2023. 2. 14 최초작성 2024. 4. 20 동영상 파일을 일련 번호 붙인 이미지 파일로 저장하는 것은 다음 포스트를 참고하세요. OpenCV Python - 동영상 파일을 일련번호 붙은 이미지 파일로 저장하기 https://webnautes.tistory.com/2323 일련 번호 붙은 이미지 파일을 동영상 파일로 다시 바꾸어봅니다. import cv2 import os def get_files(path): for root, subdirs, files in os.walk(path): list_files = [] if len(files) > 0: for f in files: fullpath = r..
검은색 빈공간을 채우는 OpenCV Python 예제입니다. 2024. 4. 17 최초 작성 실행 결과입니다. 왼쪽 원본 이미지에 보이는 검은색 공백들이 메꿔진 결과가 오른쪽 결과 이미지에 보입니다. 전체 코드입니다. import cv2 def fill_internal_areas(image_array): # 그레이스케일로 변환합니다. gray = cv2.cvtColor(image_array, cv2.COLOR_BGR2GRAY) # 컨투어를 찾습니다. contours, hierarchy = cv2.findContours(gray, cv2.RETR_CCOMP, cv2.CHAIN_APPROX_SIMPLE) if contours and hierarchy is not None: for idx, contour in..
Matplotlib의 컬러맵을 화면에 출력하는 OpenCV 예제입니다. 2024. 4. 18 최초작성 실행 결과입니다. Matploilib의 'plasma' 컬러맵을 보여줍니다. 사용한 전체 코드입니다. import numpy as np import cv2 import matplotlib cmap = matplotlib.colormaps['plasma'] array = np.linspace(0, 1, 256) # array 값 0 ~ 255에 대응하는 컬러를 가져옵니다. plasma_colors = cmap(array) # shape=(256, 4) plasma_colors = plasma_colors[:, :3] # 알파 채널 제거 shape=(256, 3) # 이미지의 색상 순서를 RGB에서 BGR로..