반응형

Python/OpenCV 27

OpenCV 모폴로지 연산 (침식, 팽창, 열기, 닫기) - OpenCV 활용

OpenCV 모폴로지 연산 (침식, 팽창, 열기, 닫기) - OpenCV 활용개요모폴로지 연산(Morphological Operations)은 이미지의 구조적 특징을 분석하고 변환하는 기법으로, 주로 이진화된 이미지에서 형태를 조정하는 데 사용됩니다. 이러한 연산은 주로 노이즈 제거, 객체 강조 및 분할 등의 작업에서 활용됩니다. OpenCV에서는 다양한 모폴로지 연산을 제공하며, 대표적으로 침식(Erosion), 팽창(Dilation), 열기(Open), 닫기(Close) 연산이 있습니다.이번 포스팅에서는 모폴로지 연산의 개념을 설명하고 OpenCV를 사용하여 실제로 구현하는 방법을 다룹니다.1. 모폴로지 연산이란?모폴로지 연산은 구조적 요소(structuring element)를 사용하여 이미지의 형..

Python/OpenCV 2025.11.11

OpenCV 윤곽선 그리기 및 특징 분석 (cv2.boundingRect(), cv2.minAreaRect())

OpenCV 윤곽선 그리기 및 특징 분석 (cv2.boundingRect(), cv2.minAreaRect())OpenCV를 이용하면 이미지에서 객체의 윤곽선을 검출하고 이를 분석할 수 있습니다. 특히 cv2.boundingRect()와 cv2.minAreaRect()를 활용하면 객체의 경계 상자를 구하고, 이를 분석하는 것이 가능합니다. 이번 포스팅에서는 윤곽선 검출, 경계 상자 그리기, 최소 면적 회전된 사각형 계산 등의 과정을 단계적으로 설명하겠습니다.1. 윤곽선 검출과 경계 상자 개요객체의 윤곽선을 검출한 후, 해당 윤곽선을 감싸는 경계 상자(Bounding Box) 를 찾는 방법에는 두 가지가 있습니다.cv2.boundingRect(contour): 가장 작은 크기의 직사각형을 반환 (회전 X)..

Python/OpenCV 2025.11.10

Django에서 WebSocket과 채팅 기능 구현 (Django Channels)

Django에서 WebSocket과 채팅 기능 구현 (Django Channels)1. 개요Django는 기본적으로 HTTP 요청/응답 모델을 기반으로 동작하지만, WebSocket을 이용하면 실시간 통신이 가능합니다. Django에서 WebSocket을 활용하기 위해서는 Django Channels를 사용해야 합니다. 이 글에서는 Django Channels를 이용하여 실시간 채팅 기능을 구현하는 방법을 설명하겠습니다.2. Django Channels란?Django Channels는 Django에 비동기 기능을 추가하는 확장 라이브러리로, WebSocket과 같은 프로토콜을 지원합니다. 기본적인 Django는 동기적인 WSGI 기반이지만, Channels를 사용하면 비동기 ASGI 서버를 활용할 수 있..

Python/OpenCV 2025.11.10

OpenCV 윤곽선 검출 (cv2.findContours())

OpenCV 윤곽선 검출 (cv2.findContours())1. 윤곽선 검출이란?윤곽선 검출은 이미지에서 객체의 경계를 찾아내는 과정입니다. 일반적으로 바이너리 이미지(흑백 이미지)에서 밝은 영역의 경계를 추출하여 분석할 때 사용됩니다. OpenCV에서는 cv2.findContours() 함수를 사용하여 윤곽선을 찾을 수 있습니다.이 글에서는 cv2.findContours() 함수의 사용법을 자세히 살펴보고, 다양한 예제 코드와 함께 윤곽선 검출을 적용하는 방법을 설명하겠습니다.2. cv2.findContours() 함수 소개cv2.findContours() 함수는 바이너리 이미지에서 윤곽선을 검출하는 기능을 합니다. 함수의 기본적인 형식은 다음과 같습니다.contours, hierarchy = cv2..

Python/OpenCV 2025.11.09

OpenCV로 색상 히스토그램 평탄화 (cv2.equalizeHist())

OpenCV로 색상 히스토그램 평탄화 (cv2.equalizeHist())이미지 처리에서 히스토그램 평탄화(histogram equalization)는 명암 대비를 향상하는 중요한 기법입니다. OpenCV에서는 cv2.equalizeHist() 함수를 이용하여 간단하게 히스토그램 평탄화를 적용할 수 있습니다. 이번 포스팅에서는 히스토그램 평탄화의 개념을 설명하고, OpenCV를 활용한 실습 코드를 함께 살펴보겠습니다.1. 히스토그램 평탄화란?히스토그램 평탄화는 이미지의 히스토그램을 고르게 분포시키는 기법으로, 어두운 영역과 밝은 영역을 균형 있게 조정하여 명암 대비를 향상합니다. 이 방법은 특히 저조도 환경에서 촬영된 이미지의 가시성을 높이는 데 유용합니다.히스토그램 평탄화를 적용하면 이미지의 픽셀 값이..

Python/OpenCV 2025.11.08

OpenCV 이미지 히스토그램 분석 (cv2.calcHist())

OpenCV 이미지 히스토그램 분석 (cv2.calcHist())1. 히스토그램이란?히스토그램(histogram)은 이미지 내 픽셀 값의 분포를 나타내는 그래프입니다. 일반적으로 x축은 픽셀의 밝기 값(0~255 범위)을, y축은 해당 밝기 값을 갖는 픽셀의 개수를 나타냅니다. 히스토그램을 분석하면 이미지의 명암 분포, 대비, 밝기 등을 파악할 수 있습니다.OpenCV에서는 cv2.calcHist() 함수를 사용하여 이미지의 히스토그램을 계산할 수 있습니다.2. cv2.calcHist() 함수 설명cv2.calcHist() 함수의 기본적인 사용법은 다음과 같습니다.cv2.calcHist(images, channels, mask, histSize, ranges)각 매개변수의 의미는 다음과 같습니다.imag..

Python/OpenCV 2025.11.07

OpenCV 이미지 위에 텍스트 추가하기 (cv2.putText())

OpenCV 이미지 위에 텍스트 추가하기 (cv2.putText())개요이미지 처리에서 텍스트를 삽입하는 기능은 다양한 용도로 활용됩니다. 예를 들어, 데이터 시각화, 객체 분류 결과 표시, 이미지 주석 추가 등에 사용할 수 있습니다. OpenCV에서는 cv2.putText() 함수를 사용하여 이미지 위에 텍스트를 삽입할 수 있습니다.이 글에서는 cv2.putText()의 기본적인 사용법과 다양한 설정 옵션을 실습 예제와 함께 설명하겠습니다.1. cv2.putText() 함수 개요cv2.putText() 함수는 OpenCV에서 제공하는 텍스트 추가 함수로, 다음과 같은 형식으로 사용됩니다.cv2.putText(img, text, org, font, fontScale, color, thickness, li..

Python/OpenCV 2025.11.06

Python OpenCV - 이미지 위에 선, 원, 사각형 그리기

Python OpenCV - 이미지 위에 선, 원, 사각형 그리기OpenCV는 강력한 이미지 처리 라이브러리로, 다양한 그래픽 요소를 이미지 위에 그릴 수 있는 기능을 제공합니다. 이번 포스팅에서는 OpenCV의 기본적인 도형 그리기 함수인 cv2.line(), cv2.rectangle(), cv2.circle()을 이용하여 이미지 위에 선, 사각형, 원을 그리는 방법을 설명하겠습니다.1. OpenCV의 도형 그리기 함수 개요OpenCV에서 제공하는 기본적인 도형 그리기 함수는 다음과 같습니다:cv2.line(): 선 그리기cv2.rectangle(): 사각형 그리기cv2.circle(): 원 그리기각 함수의 주요 매개변수는 다음과 같습니다:함수주요 매개변수설명cv2.line()img, pt1, pt2,..

Python/OpenCV 2025.11.05

OpenCV를 활용한 엣지 검출 (Canny, Sobel, Laplacian)

OpenCV를 활용한 엣지 검출 (Canny, Sobel, Laplacian)1. 개요엣지 검출(Edge Detection)은 이미지에서 경계를 찾아내는 중요한 영상 처리 기법입니다. 경계선은 물체의 형상과 구조를 나타내는 중요한 요소이며, 다양한 컴퓨터 비전 응용에서 활용됩니다. 대표적인 엣지 검출 방법에는 Sobel, Laplacian, Canny 필터가 있으며, 각각의 방법은 특정한 목적과 특성을 가집니다.이번 글에서는 OpenCV를 활용하여 Sobel 필터, Laplacian 필터, Canny 엣지 검출을 수행하는 방법을 설명하겠습니다.2. 환경 설정OpenCV를 설치하지 않았다면 다음 명령어를 실행하여 설치합니다.pip install opencv-python또한, matplotlib을 사용하여 ..

Python/OpenCV 2025.11.04

OpenCV를 활용한 이미지 필터링 (블러링, 가우시안 필터, 샤프닝)

OpenCV를 활용한 이미지 필터링 (블러링, 가우시안 필터, 샤프닝)1. 이미지 필터링이란?이미지 필터링(Image Filtering)은 이미지에서 특정한 특징을 강조하거나 노이즈를 제거하는 기법입니다. 필터링은 다양한 방식으로 수행될 수 있으며, 대표적인 방법으로 블러링(Blurring), 가우시안 필터(Gaussian Filter), 샤프닝(Sharpening) 등이 있습니다.OpenCV에서는 다양한 필터링 기법을 제공하며, 이를 활용하면 손쉽게 이미지의 품질을 개선하거나 특정한 효과를 적용할 수 있습니다.2. 블러링 (Blurring)블러링은 이미지의 노이즈를 줄이거나 부드럽게 만드는 과정입니다. 보통 저주파 필터링(Low-pass filtering)의 한 형태로, 이미지의 급격한 밝기 변화(경계..

Python/OpenCV 2025.11.03
반응형