728x90
반응형

OpenCV 17

[OpenCV] 이미지 처리 (Haar Cascade)

오늘은 Haar Cascade를 이용해서 detection을 해보자 일단 아래 주소에서 사용하고 싶은 모델 파일을 받아준다.https://github.com/opencv/opencv/tree/master/data/haarcascades opencv/data/haarcascades at master · opencv/opencvOpen Source Computer Vision Library. Contribute to opencv/opencv development by creating an account on GitHub.github.com import cv2import osimport globfrom tqdm import tqdm# 모델 경로base_dir = '/my_dir/models/'face_mode..

OpenCV 2024.08.18

[OpenCV] 이미지 처리 (concat)

오늘은 이미지를 가로나 세로로 붙여보는걸 해보자 import cv2import numpy as np# 이미지 로드image1 = cv2.imread('/my_dir/image1.jpg')image2 = cv2.imread('/my_dir/image2.jpg')# 이미지 크기 조정 (필요에 따라)image1 = cv2.resize(image1, (300, 200))image2 = cv2.resize(image2, (300, 200))# 수평 결합 (각 이미지의 height이 같아야함)concatenated_h_image = cv2.hconcat([image1, image2])# 수직 결합 (각 이미지의 width가 같아야함)concatenated_v_image = cv2.vconcat([image1,ima..

OpenCV 2024.08.18

[OpenCV] 이미지 처리 (색상변환)

오늘 해볼건 opencv로 이미지를 읽어서 rgb, hsv, lab, yuv등으로 변환하는걸 해보자 import cv2# 이미지 로드 (기본적으로 BGR로 로드됨)image_bgr = cv2.imread('path_to_your_image.jpg')# BGR 이미지를 RGB로 변환image_rgb = cv2.cvtColor(image_bgr, cv2.COLOR_BGR2RGB)# BGR 이미지를 HSV로 변환image_hsv = cv2.cvtColor(image_bgr, cv2.COLOR_BGR2HSV)# BGR 이미지를 LAB로 변환image_lab = cv2.cvtColor(image_bgr, cv2.COLOR_BGR2Lab)# BGR 이미지를 YUV로 변환image_yuv = cv2.cvtColor(..

OpenCV 2024.08.18

[OpenCV] 이미지 처리 (Feature Extraction)

1. SIFT (Scale-Invariant Feature Transform)SIFT는 이미지에서 스케일 및 회전에 불변한 특징을 추출하는 데 사용된다. 주로 객체 인식, 매칭, 추적 등에 활용. import cv2# 이미지 불러오기image = cv2.imread('/my_dir/image.jpg', cv2.IMREAD_GRAYSCALE)# SIFT 객체 생성sift = cv2.SIFT_create()# 키포인트와 디스크립터 추출keypoints, descriptors = sift.detectAndCompute(image, None)# 결과를 이미지에 그리기img_with_keypoints = cv2.drawKeypoints(image, keypoints, None)# 결과 출력cv2.imwrite('..

OpenCV 2024.08.18

[OpenCV] 이미지 처리 (GrabCut)

오늘은 opencv에 있는 GrabCut 알고리즘을 사용해보자. GrabCut Algorithm Method:초기 마스크 설정: 사용자는 초기 마스크를 설정하여 이미지의 전경(객체)과 배경을 대략적으로 지정한다. 일반적으로 사각형 영역으로 전경을 지정한다.그래프 모델 생성: 이미지의 픽셀을 노드로 하는 그래프를 생성하고, 각 노드는 전경과 배경 클래스에 연결된다. 이 그래프는 두 개의 가상 노드(전경과 배경)와 연결되어 있다.비용 함수 정의: 각 픽셀에 대해 전경과 배경으로 분류될 비용을 정의한다. 이 비용은 픽셀의 색상 및 주변 픽셀과의 관계를 기반으로 한다.최적화: GrabCut 알고리즘을 사용하여 그래프의 최적 분할을 찾는다. 이 단계에서는 전경과 배경을 최적의 방식으로 분리하는 최적화가 수행된다..

OpenCV 2024.08.18

[OpenCV] 이미지 처리 (Canny)

오늘은 canny edge detector를 이용해 이미지에서 강한 경계 부분을 찾아보는걸 해보자.  import cv2# 이미지 불러오기 (그레이스케일로 변환)image = cv2.imread('/my_dir/image.jpg', cv2.IMREAD_GRAYSCALE)# 가우시안 블러를 적용하여 노이즈 제거 (옵션)blurred = cv2.GaussianBlur(image, (5, 5), 0)# Canny 에지 검출 적용edges = cv2.Canny(blurred, threshold1=50, threshold2=150)# 결과 출력 & 저장cv2.imwrite('/my_dir/edge_image.jpg',edges)cv2.imshow('Original Image', image)cv2.imshow('E..

OpenCV 2024.08.18

[OpenCV] 이미지 처리 (Laplacian)

오늘은 라플라시안을 통해 이미지에 블러 여부를 판단하는 로직을 만들어보자.  라플라시안(Laplacian)이란 무엇인가? - 이미지의 2차 미분을 계산하여 픽셀의 밝기 변화를 강조하는 방법  1차 미분과 경계 검출: 이미지의 밝기 값은 공간적으로 변환한다. 이 변화를 1차 미분하면 밝기 값이 급격히 변하는 위치, 즉 경계(edge)를 찾을 수 있다. 하지만 1차 미분은 밝기 변화의 방향에 민감하며, 노이즈에도 영향을 받을 수 있다.2차 미분과 라플라시안: 라플라시안 변환은 이미지의 2차 미분을 사용한다. 2차 미분은 이미지의 곡률을 측정하며, 밝기 값이 급격히 변하는 위치를 더욱 강조한다. 라플라시안 변환은 이미지에서 경계와 같은 고주파 성분을 추출하는 데 강력한 도구이다. 이 변환을 통해 이미지의 샤프..

OpenCV 2024.08.18

[OpenCV] 이미지 처리 (비디오 crop)

opencv로 비디오를 프레임 이미지로 읽어서 저장하는것까지 해보았는데, 이번엔 그 해당 이미지에 특정 좌표를 그려넣는걸 해보자. import cv2# 비디오 파일 경로video_path = '/my_dir/input_video.mp4'# 출력 비디오 경로output_video_path = '/my_dir/output_video_with_rectangle.mp4'# 비디오 캡처 객체 생성cap = cv2.VideoCapture(video_path)# 원본 비디오의 속성 가져오기width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))fps = cap.get(cv2.CAP_PROP_FPS)# Vi..

OpenCV 2024.08.18

[OpenCV] 이미지 처리 (비디오)

오늘은 opencv를 이용해서 비디오를 읽고 프레임으로 나누는걸 해보자 import cv2import os# 비디오 파일 경로video_path = '/my_dir/input_video.mp4'# 저장할 디렉토리 경로output_dir = '/my_dir/frames/'# 출력 디렉토리 생성os.makedirs(output_dir, exist_ok=True)# 비디오 캡처 객체 생성cap = cv2.VideoCapture(video_path)frame_count = 0while True: # 프레임 읽기 ret, frame = cap.read() # 프레임을 제대로 읽었는지 확인 if not ret: break # 프레임 저장 frame_filename = o..

OpenCV 2024.08.18

[OpenCV] 이미지 처리 (자동보정)

오늘은 이미지 처리방법 중에서 자동보정하는 여러 방법들을 사용해보자.오늘 해볼것은 히스토그램 평활화 (Histogram Equalization), CLAHE (Contrast Limited Adaptive Histogram Equalization), Gaussian Blur and Sharpening, Brightness and Contrast Adjustment이다. 히스토그램 평활화: 이미지의 명암비를 개선하여 더 잘 보이게 만드는 기법import cv2# 이미지 읽기image = cv2.imread('/my_dir/image.jpg', 0) # 그레이스케일로 이미지 읽기# 히스토그램 평활화equalized_image = cv2.equalizeHist(image)# 결과 저장 및 보기cv2.imwr..

OpenCV 2024.08.17
728x90
반응형