Programming/python-computer vision 8

[python] OpenCV 이미지 시각화 코드 모음 (cv2.imshow) - vscode, jupyter, colab

1. 비주얼 스튜디오 코드와 같은 환경에서 .py 파일을 터미널에 실행시키는 방식 def print_image(image): if isinstance(image, str): image = cv2.imread(image) cv2.imshow("image", image) cv2.waitKey(0) cv2.destroyAllWindows() 2. 주피터 환경에서 (.ipynb 파일의 한 셀에서) 이미지를 보고싶은 경우 1) OpenCV : viewer (window)가 뜨는 방식 def print_image(image): if isinstance(image, str): image = cv2.imread(image) cv2.namedWindow("Sample Image", cv2.WINDOW_NORMAL) cv..

Matplotlib Colormaps로 OpenCV Contours 그리는 법

객체인식, 이미지분할 등 컴퓨터 비전 task들 중에서 가장 기본이 되는 이미지 처리로 이미지속 객체들의 Contours를 찾고, 이를 시각화시키는 작업을 자주하게 된다. 이미지 속에서 객체들의 경계선을 추출한 contours는 보통 cv2.drawContours로 그려주게 될텐데, 이 때 matplotlib에서 제공하는 colormaps의 색상을 어떻게 활용할 수 있는지 아래에서 확인해보자. 우선, 이미지의 Contour를 얻기 위해 아래의 코드를 실행시켜줍니다. import cv2 image = cv2.imread('./data/IMG_2421.jpg') # read an image and convert BGR image to RGB and GRAY image image = cv2.cvtColor(i..

Color Space (색공간), OpenCV

대표적으로 흔히 들어본 색공간인 RGB, HSV, HSL에 대해 알아보자. 색공간(Color Space)이란? 색 표시계(color system)의 모든 색들을 3차원 좌표계로 표현한 공간이다. RGB, HSV, HSL처럼 색공간을 표현하는 방법들(=색공간의 종류)을 color model이라고 표현한다. RGB Red, Green, Blue 3채널로 표현되는 색공간 각 채널마다 0~255로 표현되고, (0,0,0)은 검정색, (255,255,255)는 흰색이다. 빨강(255, 0, 0), 초록(0, 255, 0), 파랑(0,0,255)이고, OpenCV에서는 반대의 순차로 BGR의 형식을 사용한다. HSV (HSB) OpenCV | Color conversions (BRG → HSV) Hue : 색상 빨..

기울어진 BBOX 이미지를 잘라내는 법, 수평으로 회전시키는 방법! (EasyOCR, OpenCV)

How to crop rotated images using bounding box points of image?IC13 데이터셋의 텍스트이미지를 EasyOCR로 BBOX를 추출해내는 과정 중에서, 에러가 발생했다. 하나의 이미지에 대해서만 발생한 예외상황으로 BBOX 좌표값을 추출한 뒤, cropped image를 생성하는 과정에서 이 발생하였다. 원인은 이미지에 보이는 "UPGRADE" 단어처럼 대각선으로 기울어진 텍스트들은 BBOX의 좌표값이 start 좌표값이 end 좌표값보다 커지기 때문에 기존의 코드가 적용되지 않고, 에러가 발생했던 것이다. image[start_Y:end_Y, start_X:end_X] 따라서, crop하는 과정에서 기울어진 텍스트 이미지까지 추출해서 가져올 수 있는 코드가 ..

바운딩 박스 텍스트 읽는 순서대로 정렬하는 법 | How to sort the shuffled bounding boxes in a same way to read text

Computer Vision분야를 공부하면서 자주 접하는 bounding box 처리에 대한 내용이다. 이미지 내의 인식하고자하는 객체에 대한 영역에 박스표시를 한다고 해서 bounding box라는 단어를 사용하고, 보편적으로 좌표값(startX, startY, endX, endY)으로 된 데이터를 자주 볼 수 있다. 나는 EAST Detector을 사용하여 이미지 내의 text영역에 대한 bounding box를 추출하는 작업을 수행하였다. EAST Detector를 이용하면 한 이미지 안에서 텍스트라고 인식된 모든 영역에 대해서 좌표값 리스트로 값이 리턴되는데, 그 결과로 나온 좌표값 리스트 순서가 매우 뒤죽박죽이었다. 예시 이미지 # bounding boxes list [array([ 95, 14..

(OpenCV, Matplotlib) 파이썬에서 이미지 시각화하는 방법, 띄우는 방법

#1 : opencv로 시각화하기 (RGB원본) * 주의 : opencv는 RGB이미지를 BGR채널로 가져오게된다. import cv2 # RGB 원본 이미지 로드 bgr = cv2.imread('image_path.jpg') # GRAY(흑백) 이미지 로드 gray = cv2.imread('image_path.jpg', cv2.IMREAD_GRAYSCALE) cv2.imshow('Image', image) cv2.waitKey(0) cv2.destroyAllWindows() #2 : matplotlib로 시각화하기 import cv2 import matplotlib.pyplot as plt image = cv2.imread('image_path.jpg') plt.axis("off") # x, y좌표 축..

이미지 회전 Image Rotation할 때, 이미지 잘리지 않게 하는 법 | imutils.rotate(), rotate_bound()

이미지를 회전시킬 때, (원형이미지가 아니라면) 이미지 모서리들이 잘리기 마련이다. --> imutils.rotate() 함수를 사용하면 그런데, 이를 방지하기 위한 함수가 --> imutils.rotate_bound()이다. 이 함수를 사용하면 이미지가 회전되면서 이미지가 잘리지 않게 외곽을 빈 값으로 채워준다.

Google Tesseract 설치 및 실행 방법 | 이미지 속 텍스트 글자 인식하기 (Pytesseract OCR)

tesseract (github) : https://github.com/tesseract-ocr/tesseract GitHub - tesseract-ocr/tesseract: Tesseract Open Source OCR Engine (main repository) Tesseract Open Source OCR Engine (main repository) - GitHub - tesseract-ocr/tesseract: Tesseract Open Source OCR Engine (main repository) github.com tesseract (doc) : https://tesseract-ocr.github.io/tessdoc/Home.html Tesseract User Manual Tesseract ..