728x90 반응형 강의 (Lecture)/OpenCV 마스터 with Python (초급)18 OpenCV + Python 산술 연산과 논리 연산 안녕하세요. 코딩산책입니다. 이미지 처리에서 산술 및 논리 연산은 두 개 이상의 이미지를 결합하거나, 이미지의 특정 부분을 수정하는 데 매우 유용하게 사용됩니다. 이 글에서는 OpenCV와 Python을 사용하여 이미지 간의 산술 및 논리 연산을 적용하는 방법을 다루어 보겠습니다. 이를 통해 이미지 합성, 밝기 및 대비 조정, 이미지 마스킹 등의 작업을 수행할 수 있습니다. 1. 산술 연산 (Arithmetic Operations)OpenCV는 두 이미지 간의 덧셈, 뺄셈, 곱셈, 나눗셈 등의 산술 연산을 쉽게 수행할 수 있도록 다양한 함수를 제공합니다. 산술 연산을 통해 두 이미지를 결합하거나, 이미지의 밝기를 조정하는 등의 작업을 할 수 있습니다. 두 이미지 간의 곱셈이나 나눗셈은 이미지의 대비를 조.. 2024. 10. 8. OpenCV + Python 히스토그램 분석 안녕하세요. 코딩산책입니다.히스토그램 분석은 이미지 처리에서 매우 중요한 역할을 합니다. 히스토그램은 이미지의 픽셀 값 분포를 나타내며, 밝기, 명암 대비, 이미지의 동적 범위 등을 분석하는 데 유용합니다. 이 블로그에서는 OpenCV와 Python을 활용해 다양한 히스토그램 처리 기법을 설명하고, 이를 구현하는 코드를 제시하겠습니다. 주요 개념으로는 기본 히스토그램 구하는 방법, 히스토그램 스트레칭, 히스토그램 평활화(Histogram Equalization), CLAHE(Contrast Limited Adaptive Histogram Equalization) 등을 다룹니다. 추가적으로 히스토그램 분석에서 중요한 개념 중 하나는 PDF (Probability Density Function)와 CDF (.. 2024. 10. 7. OpenCV + Python 이미지의 밝기와 명암 조절 안녕하세요. 코딩산책입니다.이미지 처리에서 밝기와 명암을 조절하는 작업은 기본적이면서도 매우 중요한 과정입니다. 특히 사진을 보정하거나 영상의 퀄리티를 높이는 작업에서 밝기와 명암은 핵심적인 요소로 작용합니다. 이번 글에서는 OpenCV와 Python을 사용하여 이미지의 밝기와 명암을 조절하는 방법을 소개합니다. 이 글에서는 Trackbar를 이용해 실시간으로 밝기와 명암을 조절하는 방법과 각 픽셀을 직접 조작하는 방법을 설명하고, 나아가 cv2.addWeighted 함수를 사용해 보다 직관적으로 명암 대비와 밝기를 동시에 조절하는 방법을 다룹니다. 또한 이미지 파일 형식에서 비손실 이미지인 BMP 포맷의 사용 이유에 대해서도 설명합니다. 1. 컬러 영상을 그레이스케일로 변환하기이미지를 처리할 때, 컬러.. 2024. 10. 5. OpenCV + Python 각도 측정기 (실습) 안녕하세요. 코딩산책입니다.이번 글에서는 이전에 학습했던 내용을 기반으로 파이썬과 OpenCV 라이브러리를 활용하여 이미지 상에서 두 선이 이루는 각도를 측정하는 프로그램을 만들어볼 예정입니다. 마우스 클릭을 통해 두 선을 정의하고, 간단한 수학적 계산을 통해 각도를 구하는 과정을 자세히 설명하고, 실제 코드와 함께 예시를 제공합니다. 1. 프로젝트 준비1.1 필요한 라이브러리import cv2import mathcv2: OpenCV 라이브러리로 이미지 처리를 담당math: 삼각함수 등 수학적 계산을 위한 표준 라이브러리1.2 이미지 불러오기image = cv2.imread('test.jpg')cv2.imread() 함수를 이용해 측정할 이미지를 불러옵니다. 'test.jpg'는 테스트 이미지 파일이므로.. 2024. 9. 30. OpenCV + Python 한글 폰트 출력하기 안녕하세요. 코딩산책입니다.OpenCV는 기본적으로 한글을 출력하는 기능을 지원하지 않기 때문에, 한글을 이미지에 출력하려면 별도의 추가 작업이 필요합니다. 이를 위해 주로 사용하는 방법은 TrueType 폰트(TTF) 파일을 사용하여 Pillow(PIL) 라이브러리의 도움을 받아 한글을 이미지에 그리는 방식입니다. 1. 기본적인 OpenCV의 텍스트 출력 기능OpenCV에서는 cv2.putText() 함수를 사용하여 이미지를 텍스트로 주석 처리할 수 있습니다. 하지만 이 함수는 주로 영어, 숫자 등 ASCII 기반 텍스트만 제대로 출력되며, 한글과 같은 유니코드 문자 출력은 지원하지 않습니다.import cv2import numpy as np# Create a blank imageimage = np.z.. 2024. 9. 30. OpenCV + Python 마우스 및 키보드 이벤트 처리와 트랙바 활용하기 안녕하세요. 코딩산책입니다.이벤트 처리는 사용자와 프로그램 간의 상호작용을 가능하게 해주는 중요한 요소입니다. OpenCV에서도 이러한 이벤트 처리 기능을 통해 이미지와 비디오를 보다 직관적으로 조작할 수 있습니다. 마우스 클릭이나 키보드 입력을 감지하여 특정 동작을 수행하게 하거나, 트랙바를 통해 동적으로 값을 변경하여 프레임을 제어하는 등의 작업이 가능합니다. 특히 동영상 재생 시, 트랙바를 사용해 원하는 프레임으로 바로 이동하는 기능은 비디오 편집 프로그램이나 분석 도구에 유용하게 쓰일 수 있습니다.이 글에서는 Python과 OpenCV를 사용해 마우스 및 키보드 이벤트를 처리하고, 트랙바를 활용하여 동영상 프레임을 이동하는 방법을 살펴보겠습니다. 1. 마우스 이벤트 처리 OpenCV에서는 setM.. 2024. 9. 28. OpenCV + Python 다양한 그리기 함수 및 문자 출력 안녕하세요. 코딩산책입니다.OpenCV는 이미지 처리 라이브러리로, 이미지 위에 다양한 도형과 텍스트를 쉽게 그릴 수 있는 함수를 제공합니다. 이번 포스팅에서는 직선, 도형(사각형, 원, 다각형, 타원 등)을 그리는 다양한 함수들과, 텍스트를 이미지 위에 출력하는 방법을 설명하고 예제 코드를 통해 활용 방법을 알아보겠습니다. 각 축마다 좌표계를 쉽게 구현하기 위해 이미지를 그리기 위한 도구로 matplotlib를 사용하도록 합니다. 사용방법을 모르시는 경우에는 아래의 포스트를 참조 하여주시기 바랍니다.2024.09.25 - [프로그래밍 (Programming)/파이썬 (Python)] - Python Matplotlib 데이터 시각화 - imshow 함수 사용법 1. 직선 그리기 (cv2.line 및 c.. 2024. 9. 25. OpenCV + Python 이미지, 비디오, 웹캠(Webcam), RTSP 및 RTMP 스트림 처리 안녕하세요. 코딩산책입니다.이 글은 OpenCV를 사용하여 이미지, 비디오, 웹캠, 그리고 RTSP/RTMP 같은 스트리밍 URL을 처리하는 방법을 설명합니다. 이미지 파일을 읽고 화면에 출력하는 기본적인 코드부터 비디오 파일을 프레임 단위로 처리하는 방법, 웹캠을 사용해 실시간 영상을 출력하는 방법을 다룹니다. 또한, RTSP 및 RTMP와 같은 스트리밍 프로토콜을 이용한 실시간 스트리밍 처리 방법과, cv2.VideoCapture 객체의 다양한 속성을 set(...) 함수를 통해 제어하는 방법을 표로 정리하여 제공합니다. 이를 통해 OpenCV로 이미지 및 영상 데이터를 처리하는 기본적인 기술을 익힐 수 있습니다. 1. 이미지 읽기 및 저장우선 이미지 파일을 읽고 화면에 표시하고 저장하는 방법을 설명.. 2024. 9. 24. OpenCV + Python 과정 소개 및 설치 과정 안녕하세요. 코딩산책입니다.이 과정에서는 Python을 활용한 OpenCV 입문 과정을 다룹니다. OpenCV는 컴퓨터 비전(Computer Vision)을 쉽게 구현할 수 있는 대표적인 라이브러리입니다. 컴퓨터 비전은 이미지를 분석하고 처리하는 기술로, Python과 함께 사용하면 효율적으로 작업할 수 있습니다. 이번 과정은 초보자도 쉽게 따라 할 수 있도록 설계되었으며, 이론보다는 실습에 중점을 둡니다. 여러분은 OpenCV 설치 과정부터 다양한 기본 기능을 배우고, 흥미로운 프로젝트를 완성하게 될 것입니다. 실습을 통해 컴퓨터 비전의 핵심 원리를 익히고, 이를 실생활 문제 해결에 적용할 수 있는 방법을 터득할 수 있습니다. 1. 컴퓨터 비전이란 무엇인가?컴퓨터 비전은 사람이 시각적으로 인식하는 과정.. 2024. 9. 8. 이전 1 2 다음 728x90 반응형