← 홈

👁️OpenCV

⌘K
🤖
Claude Code AI 도구
🤗
Hugging Face AI 도구
🦜
LangChain AI 도구
🧠
Keras AI 도구
🦙
Ollama AI 도구
🐍
Python 프로그래밍 언어
🟨
JavaScript 프로그래밍 언어
🔷
TypeScript 프로그래밍 언어
⚛️
React 프로그래밍 언어
🐹
Go 프로그래밍 언어
🦀
Rust 프로그래밍 언어
📊
MATLAB 프로그래밍 언어
🗄️
SQL 프로그래밍 언어
⚙️
C/C++ 프로그래밍 언어
Java 프로그래밍 언어
🟣
C# 프로그래밍 언어
🍎
Swift 프로그래밍 언어
🟠
Kotlin 프로그래밍 언어
Next.js 프로그래밍 언어
💚
Vue.js 프로그래밍 언어
🔥
Svelte 프로그래밍 언어
🎨
Tailwind CSS 프로그래밍 언어
💚
Node.js 프로그래밍 언어
🌐
HTML 프로그래밍 언어
🎨
CSS/SCSS 프로그래밍 언어
🐘
PHP 프로그래밍 언어
💎
Ruby 프로그래밍 언어
🔴
Scala 프로그래밍 언어
📊
R 프로그래밍 언어
🎯
Dart 프로그래밍 언어
💧
Elixir 프로그래밍 언어
🌙
Lua 프로그래밍 언어
🐪
Perl 프로그래밍 언어
🅰️
Angular 프로그래밍 언어
🚂
Express.js 프로그래밍 언어
🐱
NestJS 프로그래밍 언어
🛤️
Ruby on Rails 프로그래밍 언어
◼️
GraphQL 프로그래밍 언어
🟪
Haskell 프로그래밍 언어
💚
Nuxt.js 프로그래밍 언어
🔷
SolidJS 프로그래밍 언어
htmx 프로그래밍 언어
💻
VS Code 개발 도구
🧠
PyCharm 개발 도구
📓
Jupyter 개발 도구
🧠
IntelliJ IDEA 개발 도구
💚
Neovim 개발 도구
🔮
Emacs 개발 도구
🔀
Git DevOps & CLI
🐳
Docker DevOps & CLI
☸️
Kubernetes DevOps & CLI
☁️
AWS CLI DevOps & CLI
🔄
GitHub Actions DevOps & CLI
🐧
Linux 명령어 DevOps & CLI
💻
Bash 스크립팅 DevOps & CLI
🌐
Nginx DevOps & CLI
📝
Vim DevOps & CLI
🔨
Makefile DevOps & CLI
🧪
Pytest DevOps & CLI
🪟
Windows DevOps & CLI
📦
패키지 매니저 DevOps & CLI
🍎
macOS DevOps & CLI
🏗️
Terraform DevOps & CLI
🔧
Ansible DevOps & CLI
Helm DevOps & CLI
🔨
Jenkins DevOps & CLI
🔥
Prometheus DevOps & CLI
📊
Grafana DevOps & CLI
💻
Zsh DevOps & CLI
🐟
Fish Shell DevOps & CLI
💙
PowerShell DevOps & CLI
🔄
Argo CD DevOps & CLI
🔀
Traefik DevOps & CLI
☁️
Azure CLI DevOps & CLI
☁️
Google Cloud CLI DevOps & CLI
📟
tmux DevOps & CLI
🔧
jq DevOps & CLI
✂️
sed DevOps & CLI
📊
awk DevOps & CLI
🌊
Apache Airflow DevOps & CLI
🔢
NumPy 데이터베이스 & 데이터
🐼
Pandas 데이터베이스 & 데이터
🔥
PyTorch 데이터베이스 & 데이터
🧠
TensorFlow 데이터베이스 & 데이터
📈
Matplotlib 데이터베이스 & 데이터
🐘
PostgreSQL 데이터베이스 & 데이터
🐬
MySQL 데이터베이스 & 데이터
🍃
MongoDB 데이터베이스 & 데이터
🔴
Redis 데이터베이스 & 데이터
🔍
Elasticsearch 데이터베이스 & 데이터
🤖
Scikit-learn 데이터베이스 & 데이터
👁️
OpenCV 데이터베이스 & 데이터
Apache Spark 데이터베이스 & 데이터
🪶
SQLite 데이터베이스 & 데이터
Supabase 데이터베이스 & 데이터
🔵
Neo4j 데이터베이스 & 데이터
📨
Apache Kafka 데이터베이스 & 데이터
🐰
RabbitMQ 데이터베이스 & 데이터
🔤
Regex 유틸리티
📝
Markdown 유틸리티
📄
LaTeX 유틸리티
🔐
SSH & GPG 유틸리티
🌐
curl & HTTP 유틸리티
📜
reStructuredText 유틸리티
🚀
Postman 유틸리티
🎬
FFmpeg 유틸리티
🖼️
ImageMagick 유틸리티
🔍
ripgrep 유틸리티
🔍
fzf 유틸리티
📗
Microsoft Excel 오피스 애플리케이션
📘
Microsoft Word 오피스 애플리케이션
📙
Microsoft PowerPoint 오피스 애플리케이션
📝
한컴 한글 한컴오피스
📽️
한컴 한쇼 한컴오피스
📊
한컴 한셀 한컴오피스
📄
Google 문서 Google Workspace
📊
Google 스프레드시트 Google Workspace
📽️
Google 프레젠테이션 Google Workspace
🔌
Cadence Virtuoso EDA & 하드웨어
⚙️
Synopsys EDA EDA & 하드웨어
💎
Verilog & VHDL EDA & 하드웨어
LTSpice EDA & 하드웨어
🔧
KiCad EDA & 하드웨어
📝
Notion 생산성 도구
💎
Obsidian 생산성 도구
💬
Slack 생산성 도구
🎮
Discord 생산성 도구
🎨
Figma 디자인 도구
📘
Confluence Atlassian
📋
Jira Atlassian
🃏
Jest 테스팅
Vitest 테스팅
🎭
Playwright 테스팅
🌲
Cypress 테스팅
🌐
Selenium 테스팅
💙
Flutter 모바일 개발
📱
React Native 모바일 개발
🍎
SwiftUI 모바일 개발
📱
Expo 모바일 개발
🐍
Django 웹 프레임워크
FastAPI 웹 프레임워크
🌶️
Flask 웹 프레임워크
🍃
Spring Boot 웹 프레임워크
🍸
Gin 웹 프레임워크
Vite 빌드 도구
📦
Webpack 빌드 도구
esbuild 빌드 도구
🐘
Gradle 빌드 도구
🪶
Maven 빌드 도구
🔧
CMake 빌드 도구
🎮
Unity 게임 개발
🤖
Godot 게임 개발
🔌
Arduino 임베디드 & IoT
🔍
Nmap 보안
🐕
Datadog 모니터링
📖
Swagger/OpenAPI 문서화
검색 결과가 없습니다
EN KO

📷 이미지 기본

📁 읽기 & 쓰기

import cv2 OpenCV 가져오기
img = cv2.imread("image.jpg") 이미지 읽기 (BGR)
cv2.imread("image.jpg", cv2.IMREAD_GRAYSCALE) 그레이스케일로 읽기
cv2.imwrite("output.jpg", img) 이미지 저장
cv2.imshow("Window", img) 이미지 표시
cv2.waitKey(0) 키 입력 대기
cv2.destroyAllWindows() 창 닫기

📊 이미지 속성

img.shape (높이, 너비, 채널)
img.dtype 데이터 타입
img.size 전체 픽셀 수
img[y, x] 픽셀 접근 (BGR)
img[y1:y2, x1:x2] ROI (관심 영역)
b, g, r = cv2.split(img) 채널 분리
cv2.merge([b, g, r]) 채널 병합

🎨 색 공간

🔄 색상 변환

cv2.cvtColor(img, cv2.COLOR_BGR2RGB) BGR에서 RGB로
cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) BGR에서 그레이스케일로
cv2.cvtColor(img, cv2.COLOR_BGR2HSV) BGR에서 HSV로
cv2.cvtColor(img, cv2.COLOR_BGR2LAB) BGR에서 LAB로
cv2.cvtColor(img, cv2.COLOR_GRAY2BGR) 그레이스케일에서 BGR로

임계처리

cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY) 이진 임계처리
cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU) 오츠 임계처리
cv2.adaptiveThreshold(gray, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, 11, 2) 적응형 임계처리
cv2.inRange(hsv, lower, upper) 색상 범위 마스크

🔀 변환

📐 기하 변환

cv2.resize(img, (width, height)) 이미지 리사이즈
cv2.resize(img, None, fx=0.5, fy=0.5) 배율로 스케일
cv2.rotate(img, cv2.ROTATE_90_CLOCKWISE) 90° 회전
cv2.flip(img, 1) 수평 뒤집기
cv2.flip(img, 0) 수직 뒤집기
cv2.warpAffine(img, M, (w, h)) 아핀 변환
cv2.warpPerspective(img, M, (w, h)) 원근 변환

🔢 변환 행렬

cv2.getRotationMatrix2D(center, angle, scale) 회전 행렬
cv2.getAffineTransform(pts1, pts2) 아핀 행렬
cv2.getPerspectiveTransform(pts1, pts2) 원근 행렬

🌫️ 필터링 & 블러링

🔵 블러 & 스무딩

cv2.blur(img, (5, 5)) 평균 블러
cv2.GaussianBlur(img, (5, 5), 0) 가우시안 블러
cv2.medianBlur(img, 5) 중앙값 블러
cv2.bilateralFilter(img, 9, 75, 75) 양방향 필터

📏 에지 검출

cv2.Canny(img, 100, 200) 캐니 에지 검출
cv2.Sobel(img, cv2.CV_64F, 1, 0) 소벨 X
cv2.Sobel(img, cv2.CV_64F, 0, 1) 소벨 Y
cv2.Laplacian(img, cv2.CV_64F) 라플라시안

형태학적 연산

kernel = np.ones((5,5), np.uint8) 커널 생성
cv2.erode(img, kernel, iterations=1) 침식
cv2.dilate(img, kernel, iterations=1) 팽창
cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel) 열기 (침식 + 팽창)
cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel) 닫기 (팽창 + 침식)
cv2.morphologyEx(img, cv2.MORPH_GRADIENT, kernel) 형태학적 그래디언트

🔷 윤곽선 & 도형

🔍 윤곽선 검출

contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) 윤곽선 찾기
cv2.drawContours(img, contours, -1, (0,255,0), 2) 모든 윤곽선 그리기
cv2.contourArea(cnt) 윤곽선 면적
cv2.arcLength(cnt, True) 윤곽선 둘레
cv2.approxPolyDP(cnt, epsilon, True) 다각형 근사
cv2.boundingRect(cnt) 경계 사각형

✏️ 그리기

cv2.line(img, pt1, pt2, color, thickness) 선 그리기
cv2.rectangle(img, pt1, pt2, color, thickness) 사각형 그리기
cv2.circle(img, center, radius, color, thickness) 원 그리기
cv2.ellipse(img, center, axes, angle, 0, 360, color) 타원 그리기
cv2.polylines(img, [pts], True, color, thickness) 다각형 그리기
cv2.putText(img, text, org, font, scale, color, thickness) 텍스트 그리기

🎯 특징 검출

📍 키포인트 검출

orb = cv2.ORB_create() ORB 검출기 생성
kp, des = orb.detectAndCompute(img, None) 검출 및 계산
cv2.drawKeypoints(img, kp, None) 키포인트 그리기
sift = cv2.SIFT_create() SIFT 생성
bf = cv2.BFMatcher() 무차별 매처
matches = bf.match(des1, des2) 기술자 매칭

📏 허프 변환

cv2.HoughLines(edges, 1, np.pi/180, 200) 허프 직선
cv2.HoughLinesP(edges, 1, np.pi/180, 100, minLineLength, maxLineGap) 확률적 허프 직선
cv2.HoughCircles(gray, cv2.HOUGH_GRADIENT, 1, 20) 허프 원

🎬 비디오 처리

📹 비디오 캡처

cap = cv2.VideoCapture(0) 웹캠 열기
cap = cv2.VideoCapture("video.mp4") 비디오 파일 열기
ret, frame = cap.read() 프레임 읽기
cap.get(cv2.CAP_PROP_FPS) FPS 얻기
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 640) 너비 설정
cap.release() 캡처 해제

💾 비디오 저장

fourcc = cv2.VideoWriter_fourcc(*'XVID') 비디오 코덱
out = cv2.VideoWriter('output.avi', fourcc, 20.0, (640,480)) 작성기 생성
out.write(frame) 프레임 쓰기
out.release() 작성기 해제

💡 팁 & 모범 사례

유용한 팁

  • OpenCV는 기본적으로 RGB가 아닌 BGR 사용
  • 많은 연산에서 그레이스케일로 변환
  • 원본 이미지 수정 방지를 위해 np.copy() 사용
  • 에지 검출 전 가우시안 블러 적용
  • 중첩 도형에 윤곽선 계층 사용
  • 비디오 읽기 전 cap.isOpened() 확인