첫번째 코드를 실행시켜서 손글씨 숫자 MNIST 데이터로 훈련을 시킨 후, 두번째 코드에서 실제 손글씨 이미지를 로드하여 인식시켜보았습니다. 테스트시 아래 이미지를 사용했습니다. 실행결과는 다음과 같았습니다. [0 1 2 3 4 5 6 7 8 9] 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, x_test / 255.0 model = tf.keras.models.Sequential([ tf.keras.layers.Flatten(), tf.keras.layers.Dense(512, activa..
4분할로 웹캠 또는 동영상을 보여주는 OpenCV C++ 예제 코드입니다. 2021. 12. 4 – 최초작성 초기화면 또는 0을 누른 경우에는 4개의 영상을 4분할로 보여주며 1 ~ 4 사이 숫자 누르면 영상 1개씩 전체화면으로 보여줍니다. 테스트에 사용한 영상을 캡처한 결과입니다. 요청 있을시 이미지를 삭제하도록 하겠습니다. 전체 소스 코드입니다. #include "opencv2/opencv.hpp" #include "iostream" using namespace std; using namespace cv; int main() { VideoCapture camera1("1.mp4"); if (!camera1.isOpened()) { cout
이미지를 세로 방향으로 연결하는 vconcat 함수와 이미지를 가로 방향으로 연결하는 hconcat 함수 예제입니다. 2022. 11. 3 최초작성 vconcat 이미지를 세로 방향으으로 연결하는 vconcat 함수 예제입니다. 이미지의 너비가 똑같아야 합니다. import cv2 img1 = cv2.imread('apple.png') img2 = img1.copy() # 이미지를 복사하여 사용합니다. # 세로방향으로 이미지를 연결합니다. 리스트에 이미지를 추가하여 2개 이상 연결할 수 있습니다. img = cv2.vconcat([img1, img2]) cv2.imshow('img', img) cv2.waitKey(0) hconcat 이미지를 가로 방향으으로 연결하는 hconcat 함수 예제입니다. 이미..
웹캠 / 비디오 파일에서 가져온 이미지에 fps 표시하여 화면에 출력하는 OpenCV Python 예제 코드입니다. 2022. 03. 06 최초작성 2023. 09. 10 웹캠/비디오 파일을 성공적으로 열었는지 여부를 체크 # 참고 # https://github.com/dgseten/bad-cv-tfm/blob/2ada9b71f85aa5eb75c1f4a039cb14d697ee2f69/tools/video/video-player-wait-fps.py # https://stackoverflow.com/a/65146731 import cv2 import time # 이미지에 텍스트를 출력하는 함수 def draw_text(img, text, x, y): font = cv2.FONT_HERSHEY_SIMPLEX..
applyColorMap를 사용하여 OpenCV Python에서 HeatMap을 흉내내는 예제코드입니다. 2023. 9. 10 최초작성 배열에 가상으로 값을 넣어서 출력해본 결과입니다. 배열에 있는 값이 높을 수록 검은색 < 빨간색 < 노란색으로 보입니다. 전체 코드입니다. import cv2 import numpy as np # 가상으로 점유 정보가 저장된 2차원 배열을 생성합니다. # OpenCV의 컬러맵 함수는 8비트 이미지를 사용하므로 0-255 범위로 설정합니다. 필요시 값의 범위를 조정해야합니다. occupancy_counts = np.array([[0,0,0,0,0,0,0,0,0,0], [0,10,10,10,10,10,10,10,10,0], [0,0,0,0,0,0,0,0,110,0], [0,..
QT와 OpenCV를 같이 사용하기 위해 pro 파일에 OpenCV 관련 컴파일 옵션들을 다음처럼 추가했습니다. 2021. 8. 24 최초작성 동작할거라는 예상과는 달리 다음과 같은 에러가 나네요. webnautes@DESKTOP-8TRVTF8:/mnt/d/qt_opencv_webcam$ make g++ -c -pipe -O2 -Wall -W -D_REENTRANT -fPIC -DQT_DEPRECATED_WARNINGS -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I. -I. -I -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtWidg..
RTSP 재접속 및 비디오 다시 재생하는 코드를 OpenCV로 간단히 구현해봤습니다. 2022. 10. 27 최초작성 import cv2 import time try_num = 1 program_quit = False # 두개의 루프를 사용합니다. # 바깥 루프는 RTSP 재접속 시도 및 비디오 다시 재생하는 루프이고 # 안쪽 루프는 이미지를 가져와 화면에 보여주는 루프입니다. while True: # 시도한 횟수를 출력합니다. print(f'try {try_num}') # 0 대신에 RTSP URL 이나 비디오 파일 이름으로 대체하면 됩니다. cap = cv2.VideoCapture(0) # 이미지를 가져옵니다. ret,img_color = cap.read() if ret == False: try_nu..
Ubuntu 20.04에 Miniconda 설치 후, Tensorflow와 OpenCV 설치하는 방법을 다룹니다. 2021. 7. 7 최초작성. 2021. 7. 8. 다시 검토(conda activate 실행 안되는 문제 해결, 가상환경 위치관련 수정) 참고 https://varhowto.com/install-miniconda-ubuntu-20-04/ 1. 설치를 할 때 사용할 최신버전 설치 쉘스크립트를 다운로드합니다. $ wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh 2. 쉘스크립트의 퍼미션을 실행가능하도록 변경합니다. $ chmod +x Miniconda3-latest-Linux-x86_64.sh 3. 쉘 스크립트..
WSL2에 CUDA 사용하도록 OpenCV 설치하는 방법을 다룹니다. 2022. 11. 26 최초작성 1. WSL2를 설치하는 방법은 다음 링크를 참고하세요. WSL2를 설치하여 Ubuntu 22.04 사용하는 방법 https://webnautes.tistory.com/1847 2. WSL2에 CUDA를 설치하는 방법은 다음 링크를 참고하세요. WSL2에 CUDA 설치하는 방법 https://webnautes.tistory.com/1848 3. 다음 명령을 차례로 실행하여 WSL2에서 pip3 명령을 사용할 수 있도록 해줘야 합니다. 참고 https://learn.microsoft.com/ko-kr/windows/python/web-frameworks sudo apt-get update && sudo a..
이번 포스팅에서는 OpenCV Python의 좌표계와 그리기 함수를 사용하기 전에 알아야 하는 개념에 대해서 설명합니다. 2015. 1. 2 - 최초 작성 2023. 4. 13 - 최종작성 관련 포스트 OpenCV 좌표계를 직교 좌표계로 변환하는 Python 코드 https://webnautes.tistory.com/1812 OpenCV 좌표계 변환( Top Left ↔ Bottom Left ) https://webnautes.tistory.com/1815 OpenCV Python에서는 좌표를 튜플로 나타냅니다. 튜플의 첫번째 원소가 x 좌표, 두번째 원소가 y좌표입니다. ( x , y ) 이미지의 왼쪽 위가 원점 (0,0)입니다. 오른쪽으로 갈수록 x값이 증가하고 아래쪽으로 갈수록 y 값이 증가합니다...