본문 바로가기

CV(Computer Vision)8

OCR 1. OCR( Optical Character Recognition ) 광학 문자 인식(OCR)은 광학적 또는 전자적 장치를 사용하여 이미지의 문자를 컴퓨터가 이해할 수 있는 텍스트로 변환하는 프로세스입니다. 이 프로세스는 다음과 같은 주요 단계로 이루어집니다. 이미지 획득: OCR 프로세스의 첫 번째 단계는 문서나 사진 등의 이미지를 디지털 형식으로 획득하는 것입니다. 이를 위해 스캐너, 디지털 카메라 또는 이미지 스캔 앱과 같은 장치를 사용합니다. 전처리: 획득된 이미지에는 종종 노이즈, 왜곡, 그림자 또는 회전된 문자와 같은 문제가 있을 수 있습니다. 전처리 과정에서는 이미지를 정제하고 보정하여 후속 단계에서 문자를 올바르게 인식할 수 있도록 합니다. 문자 인식: 문자 인식 단계에서는 전처리된 이미.. 2024. 2. 27.
필터링/컨투어링 1. 필터링 필터링은 커널(필터)이라 불리는 행렬을 정의하여 이미지 위를 이동하면서 커널과 겹치는 부분의 픽셀에 대해 연산을 수행하는 작업을 말합니다. 이 과정에서 연산된 결과값은 기존의 이미지 픽셀을 대체하여 새로운 이미지를 생성합니다. filter2D(영상, 이미지깊이, 커널, 중심점 좌표, 추가될 값, 가장자리 화소 처리) - 이미지 깊이: -1 (입력과 동일) - 커널: 3x3, 5x5 등 크기에 따라 결과가 달라짐 - 중심점 좌표: 커널의 중심점 위치 - 추가될 값: 가장자리 화소 처리 방법에 따라 추가되는 값 - 가장자리 화소 처리: - BORDER_CONSTANT: 0 또는 검은색으로 처리되는 가장자리 픽셀 (000abcdef000) - BORDER_REPLICATE: 이미지 가장자리 화소를.. 2024. 2. 26.
영상의 변환/ 적응형 이진화/ 유사도 1. 적응형 이진화 적응형 이진화는 노이즈를 제거한 후 Otsu 이진화를 적용하는 방법입니다. 이를 통해 영상을 여러 영역으로 나눈 뒤, 해당 영역의 주변 픽셀 값만을 활용하여 임계값을 도출합니다. cv2.adaptiveTreshold(영상, 임계값을 만족하는 픽셀에 적용할 값, 임계값 결정 방법, Threshold 적용방법, 블록사이즈, 가감할 상수) 임계값 결정 방법 cv2.ADAPTIVE_THRESH_MEAN_C: 이웃 픽셀의 평균으로 결정합니다. 선명하지만 잡티가 많아질 수 있습니다. cv2.ADAPTIVE_THRESH_GAUSSIAN_C: 가우시안 분포에 따른 가중치의 합으로 결정합니다. 선명도는 조금 떨어지지만 잡티가 적습니다. 블록사이즈: 이 매개변수는 이미지를 작은 블록들로 나누는 데 사용.. 2024. 2. 25.
관심 영역/ 이진화 1. 관심 영역(ROI, Region of Interest) ROI(Region of Interest)는 영상 내에서 주요 관심이 있는 영역을 가리킵니다. cv2.selectROI() 함수를 사용하여 사용자가 마우스로 관심 있는 영역을 선택할 수 있습니다. cv2.selectROI(창이름, 영상, 중앙좌표여부=False) 중앙좌표여부: True일 경우, 선택한 ROI의 중앙좌표로 계산되며, 기본값은 False(왼쪽 상단)입니다. import cv2 img1 = cv2.imread('./sun.jpg') # x, y, w, h x = 182 y = 21 w = 121 h = 112 # 관심 영역만 지정해서 img2에 저장 roi = img1[y: y+h, x: x+w] img2 = roi.copy() # .. 2024. 2. 18.
이미지 처리 기법 1. 균등화, 평탄화(Equalization) 균등화(히스토그램 평활화) 및 평탄화는 히스토그램을 활용하여 이미지의 품질을 개선하기 위한 방법입니다. 이미지의 대비를 향상시키고, 세부 정보를 더 잘 드러나게 함으로써 이미지의 시각적 품질을 향상시킵니다. 픽셀 강도를 새로운 값으로 매핑함으로써 화소값을 0~255 사이에 고르게 분포하도록 개선합니다. cv2.equalizeHist(영상) import cv2 import matplotlib.pyplot as plt src = cv2.imread('./Hawkes.jpg', cv2.IMREAD_GRAYSCALE) dst = cv2.equalizeHist(src) hist1 = cv2.calcHist([src], [0], None, [256], [0, 255]).. 2024. 2. 16.
영상처리 기초 : 화소처리 1. 화소처리 영상의 화소 처리란 영상의 특정 좌표 픽셀값을 변경하여 출력 영상의 좌표 픽셀을 설정하는 모든 연산을 의미합니다. (1) 밝기 조절 영상의 밝기를 조절하는 연산은 전체적으로 영상을 밝게하거나 어둡게 하는데 사용됩니다. cv2.add(첫번째 영상, 두번째 영상) #픽셀값이 높아지면 밝아짐, 꼭 영상끼리가 아니고 상수값도 가능 cv2.subtract(첫번째 영상, 두번째 영상) # 어두워짐. cv2.multiply(첫번째 영상, 두번째 영상) cv2.divide(첫번째 영상, 두번째 영상) src1 = cv2.imread('./dog.bmp', cv2.IMREAD_GRAYSCALE) src2 = cv2.imread('./dog.bmp') dst1 = cv2.add(src1, 100) dst2 .. 2024. 2. 10.