본문 바로가기

딥러닝(Deep Learning)/OpenCV-Python

예지보전(Predictive Maintenance)-Version3(잔존 유효 수명-RUL, Remaining Useful Life) +++++++++++++++++++++++++++++++++STEP 0 : RUL에 대한 개념 설명++++++++++++++++++++++++++++++++++ (본격적인 예지보전(Predictive Maintenance) AI 개발 Process를 설명하기 이전, 잔존 유효 수명(RUL)에 대한 개념부터 설 명을 하겠다) 예지 보전의 최대 목표는 잔존 유효 수명인 RUL을 추정하는 것. 위 그래프에서 시간이 지남에 따라 기계 성능이 저하되는 것을 볼 수 있다. 파란색 점의 상태(Current condition)이 기계의 [현재 상태(정상 상태라고 가정)]라면 잔존 유효 수명은 이 시점부터 빨간색 점의 상태(Failure condition), 즉 [고장 상태]까지의 기간으로 계산됩니다. (설비의 종류 및.. 더보기
connected Component Labeling(Feat. OpenCV,4 연결성, 8 연결성) https://swkdn.tistory.com/entry/6-%EC%98%81%EC%83%81%EB%B6%84%ED%95%A0Segmentation-%EC%98%81%EC%83%81%EA%B8%B0%EB%B0%98-%EC%B2%98%EB%A6%AC%EA%B8%B0%EB%B2%95 [6] 영상분할(Segmentation, 영상기반 처리기법) 목표 Image segmentation의 목적 및 필요성 Image segmentation 방법 Image Segmentation => 전체 영상을 객체 또는 의미 있는 객체의 일부 영역의 집합으로 구 분하는 과정 Categories of image segmentation techniques => 영 swkdn.tistory.com https://vision0814.t.. 더보기
cv.namedWindow, cv.setMouseCallback의 관계(Feat, winname, 윈도우 창 구분자) import cv2 as cv import numpy as np import sys img = cv.imread("2.jpg") if img is None: sys.exit("해당 파일을 찾지 못하였습니다.") def drawing(event,x,y,flags,param): global ix,iy if event == cv.EVENT_LBUTTONDOWN: ix,iy = x,y elif event == cv.EVENT_RBUTTONUP: cv.rectangle(img,(ix,iy),(x,y),(0,0,255),2) print("x",x,"y",y) cv.imshow("t2",img) cv.namedWindow("t1") cv.imshow("t1",img) cv.setMouseCallback("tittle.. 더보기
cv.CAP_DSHOW(Feat. DirectShow API,윈도우, Windows) cv.CAP_DSHOW의 DSHOW는 [Direct Show] API의 약자이며, DirectShow는 Microsoft Windows 운영 체제에서 멀티미디어 스트림을 처리하기 위한 아키텍처입니다. 따라서 cv.CAP_DSHOW는 OpenCV에서 Windows 환경에서 DirectShow API를 사용하여 카메라를 캡처하기 위한 상수입 니다. (개발 환경이 리눅스의 경우, cv.CAPDSHOW 설정을 하게 되면 에러가 난다) OpenCV가 DirectShow를 사용하여 카메라를 캡처하도록 지정됩니다. 이것은 일부 특정한 상황에서 필요할 수 있습니다. 예를 들어, 일부 카메라가 DirectShow를 통해 더 잘 작동하거나, 다른 캡처 소스에 액세스할 필요가 없는 경우에 사용될 수 있습니다. 그러나 일반적.. 더보기
OpenCV GPU 연동(Feat. Cmake, Cuda toolkit, cudnn) https://prlabhotelshoe.tistory.com/24 [CUDA&OpenCV] Python 환경 OpenCV GPU 연동 (CUDA backend in OpenCV) - 1. 파일 설치 컴퓨터 비전 등을 공부할 때 자주 접하게 되는 OpenCV 이에 대한 여러 블로그나 기타 웹에서 샘플 코드를 학습할 때, GPU와의 연동으로 빠른 처리를 시도해 볼 수 있으며 간단한 코드 작성으로 실행 prlabhotelshoe.tistory.com https://prlabhotelshoe.tistory.com/26#google_vignette [CUDA&OpenCV] Python 환경 OpenCV GPU 연동 (CUDA backend in OpenCV) - 2. 빌드 & 테스트 지난 포스팅에서 빌드를 위한.. 더보기
cv.CHAIN_APPROX_NONE, CHAIN_APPROX_SIMPLE(Feat. findContours() ) cv.CHAIN_APPROX_NONE 등고선(Edge)을 표현할 때 근사화를 하지 않고, 모든 좌표를 포함하여 표현하는 방법입니다. 이 방법을 사용하면 등고선 상의 모든 픽셀 좌표가 유지되며, 등고선(Edge)이 구성되는 모든 픽셀이 포함됩니다. 1로 표시된 모든 좌표를 반환을 한다. cv.CHAIN_APPROX_SIMPLE 등고선(Edge)의 일부 중요한 포인트만을 선택하여 표현하게 되어 메모리 사용을 줄이고 계산 효율성을 높입니다. 예를 들어, 이 등고선(Edge)을 근사화하여 표현하는 좌표 리스트는 [(0,0), (3,3), (3,1), (3,3)]와 같이 등고선을 대표하는 중요한 포인트만을 포함하고 있게 됩니다. (정사각형의 네 개의 꼭지점의 좌표만이 반환된다) https://bkshin.tist.. 더보기
cv2.cvtColor(grayscale 변환)의 내부 원리(feat. Luma) Grayscale 이미지로의 변환은 BGR 이미지의 각 픽셀을 단일 휘도(밝기) 값으로 변환하는 과정입니다. 일반적으로 많이 사용되는 방법 중 하나는 휴먼 비전(Human Vision)에 기반한 방법인 Luma 채널을 사용하는 것입니다. Luma는 B, G, R 채널의 가중 평균을 계산하여 얻을 수 있습니다. Luma 계산식: GrayScale=0.299⋅R + 0.587⋅G + 0.114⋅B import cv2 # 이미지 읽기 image = cv2.imread('example.jpg') # BGR 이미지를 Grayscale 이미지로 변환 gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) Opencv-Python에서는 일반적으로 cv2.cvtColor()을 사.. 더보기
cv2.resize의 [dsize]와 [fx,fy]의 관계(open-cv) import cv2 # 이미지 불러오기 image = cv2.imread("input_image.jpg", cv2.IMREAD_GRAYSCALE) # 가로x세로 = (1000,1000)이라고 가정 # 이미지의 크기를 반으로 줄이기 resized_image = cv2.resize(image, dsize=(0, 0), fx=0.5, fy=0.5) # 결과 이미지 출력 cv2.imshow("Resized Image", resized_image) cv2.waitKey(0) cv2.destroyAllWindows() 우선 결론을 먼저 말하자면 cv2.resize()를 통해 이미지의 크기를 조절하기 위해서는 dsize와 [fx,fy] 둘 중 하나만 사용해도 된다. dsize=(0,0)으로 설정을 할 경우, 이미지의.. 더보기