본문 바로가기
728x90

OpenCV/OpenCV-basic7

특징 검출 해당 특징점이 존재하는 위치를 알려주거나 해당 특징점을 부각 픽셀의 색상 강도, 연속성, 변화량, 의존성, 유사성, 임계점 등을 사용하여 특징을 파악 특징 검출을 사용하여 다양한 패턴의 객체를 검출할 수 있다. 가장자리(Edge) 가장자리(Edge) 검출은 이미지 내의 가장자리 검출을 위한 알고리즘 픽셀의 그라디언트의 상위 임계값과 하위 임계값을 사용하여 가장자리를 검출 픽셀의 연속성, 연결성 등이 유효해야합니다. 가장자리의 일부로 간주되지 않는 픽셀은 제거되어 가장자리만 남게됩니다. 윤곽(Contours) 윤곽(Contours) 검출은 이미지 내의 윤곽 검출을 위한 알고리즘 동일한 색상이나 비슷한 강도를 가진 연속한 픽셀을 묶습니다. 윤곽 검출을 통하여 중심점, 면적, 경계선, 블록 껍질(findCon.. 2021. 12. 24.
이미지 연산, 배열 정합(addWeighted) 이미지 연산 * cv2.add() import cv2 as cv import sys img1 = cv.imread('code007\\color_image.jpg') img2 = cv.imread('tetris_blocks.png') img_hsv = cv.cvtColor(img1, cv.COLOR_BGR2HSV) # add를 위한 동일한 이미지 사이즈로 변경 print(img1.shape) # 640, 1920 ( h ,w ) img2 = cv.resize(img2, (1920,640)) if img1 is None and img2 is None: print('Image load failed') sys.exit() # cv2.add(src1, src2) img_sum = cv.add(img1, img2).. 2021. 12. 12.
모폴로지 연산(Morphology) 모폴로지 변환의 팽창(dilation)과 침식(erosion)을 기본 연산으로 사용해 고급 형태학을 적용하는 변환 연산 입력 이미지가 이진화된 이미지라면 팽창과 침식 연산으로도 우수한 결과를 얻을 수 있다. 하지만, 그레이스케일이나 다중 채널 이미지를 사용하는 경우 더 복잡한 연산을 필요 ▪ 모폴로지(Morphology) 연산이란? • 영상을 형태학적인 측면에서 다루는 기법 • 다양한 영상 처리 시스템에서 전처리(pre-processing) 또는 후처리(post-processing) 형태로 널리 사용 • 수학적 모폴로지(mathematical morphology) ▪ 구조 요소(Structuring element) • 모폴로지 연산의 결과를 결정하는 커널, 마스크, 윈도우 # 만약 세로방향으로만 침식 o.. 2021. 12. 12.
opencv-VideoCapture, VideoWriter 프레임은 비디오나 영화, TV등이 영상 매체를 전달할 때 화면에 뿌려주는 한장 한장의 그림을 말합니다. 이러한 한장 한장의 그림들이 초당 얼마간의 속도로 빠르게 바뀌면서 움직이는 하나의 동영상을 만들어 내게 됩니다. 영화에서 쓰이는 필름을 떠 올려보십시요. 그 필름에서 보이는 하나 하나의 그림이 바로 프레임을 뜻합니다. 이것은 인간의 시각이 한 장의 그림을 본 후 뇌에 전달하기 까지의 과정에서 또 다른 한 장의 그림을 보여줌으로써 실제로는 한 장,한 장 의 그림을 본 것임에도 움직인다고 느끼게 만드는 일종의 눈 속임이라고 볼 수 있습니다. # camera cap = cv.VideoCapture(0) # in 예외처리 if not cap.isOpened(): print('Camera open failed'.. 2021. 12. 11.
opencv-HSV, YCrCb(특정 색 추출) * HSV - 특정 색 추출 - RGB는 영상을 어떤것을 가져왔느냐에 따라 성능이 다름(밝기) - HSV에선 Value로 명암을 조절할 수 있기 때문에 더 유용함 ''' # HSV ( Hue, Saturation, Value ) 색상, 채도, 명도 H(0~180), S(0~255), V(0~255) inRange = 낮은 범위(lowerb)에서 높은 범위(upperb) 사이의 요소를 추출 ''' img = cv.imread('code007\\color_image.jpg') img_hsv = cv.cvtColor(img, cv.COLOR_BGR2HSV) # HSV (h, s, v) = cv.split(img_hsv) # cv.split # HSV = 특정 색만 검출 할 수 있다 # hsv 이미지 참조(0~.. 2021. 12. 11.
opencv-findContours # Counting Objects(contours 윤곽선, hierarchy 계층구조) # cv2.findContours(이진화 이미지(mask), 검색 방법, 근사화 방법) contours, hierarchy = cv.findContours(dst.copy(), cv.RETR_EXTERNAL, \ cv.CHAIN_APPROX_SIMPLE) # [contours[i]] = 윤곽선 표시 # cv.CHAIN_APPROX_SIMPLE 윤곽점들 단순화 수평, 수직 및 대각선 요소를 압축하고 끝점만 남김 print(contours) # 각 점으로 표시됨 print(hierarchy[0][1]) # cv2.drawContours(이미지, [윤곽선], 윤곽선 인덱스, (B, G, R), 두께, 선형 타입) # 윤곽선.. 2021. 12. 11.
opencv-basic https://076923.github.io/posts/Python-opencv-1/ Python OpenCV 강좌 : 제 1강 - OpenCV 설치 OpenCV 076923.github.io OpenCV Open Source Computer Vision Library 이미지 불러오기 (cv.imread) import cv2 as cv # 이미지 불러오기 img = cv.imread('cat.bmp') (h,w,d) = img.shape print(img.shape) cv2.namedWindow("image", cv2.WINDOW_AUTOSIZE) # WINDOW_NORMAL = 영상 크기가 클때(마우스로 크기를 줄이거나 키울 수 있음) # WINDOW_AUTOSIZE = default cv.imshow.. 2021. 12. 11.
728x90