728x90
반응형

OpenCV 17

[OpenCV] 이미지 처리 (모자이크 & 블러)

오늘은 특정 좌표에 모자이크나 블러를 생성하는걸 해보자.  import cv2import numpy as npdef apply_gaussian_blur(image, ksize=(15, 15)): """Apply Gaussian blur to the image.""" return cv2.GaussianBlur(image, ksize, 0)def apply_mosaic(image, x, y, w, h, block_size=10): """Apply mosaic effect to a specified region of the image.""" # Extract the region of interest (ROI) roi = image[y:y+h, x:x+w] # Resize the..

OpenCV 2024.08.17

[OpenCV] 이미지 처리 (합성2)

지난번엔 이미지를 그냥 crop해서 특정 좌표에 그대로 덮어씌우는 합성이었는데, 오늘은 alpha값 까지 조정해서 합성하는걸 해보도록 하겠다. import cv2import numpy as np# 이미지 읽기source_image = cv2.imread('/my_dir/source_image.png')target_image = cv2.imread('/my_dir/target_image.png')# 관심 영역 좌표와 크기 정의x, y, w, h = 100, 50, 200, 150 # 원본 이미지에서 자를 영역# 원본 이미지에서 관심 영역 잘라내기roi = source_image[y:y+h, x:x+w]# 마스크 생성mask = np.zeros((h, w), dtype=np.uint8)mask[:] = 2..

OpenCV 2024.08.17

[OpenCV] 이미지 처리 (합성1)

지난번에 crop하는 방법까지 알아보았는데, 이 crop한 이미지를 그냥 잘라서 사용할수도 있지만 이 자른 이미지를 다른 이미지에 붙여 넣을 수 도 있다.  import cv2import numpy as np# 이미지 읽기image_1 = cv2.imread('/my_dir/example_1.png')# 좌표 설정x1 = 50y1 = 50x2 = 100y2 = 100# crop하기crop_image = image_1[y1:y2, x1:x2]# 붙일 원본 이미지 읽기image_2 = cv2.imread('/my_dir/example_2.png')# 이미지의 크기h, w, _ = image_2.shape# crop 이미지를 resizeresized_crop = cv2.resize(crop_image, dsi..

OpenCV 2024.08.17

[OpenCV] 이미지 처리 (crop)

opencv를 사용하면서 매번 헷갈리는게 crop이었던 것 같다. import cv2# image readimage = cv2.imread('/my_dir/test_img.png')# 내가 자르고 싶은 bbox의 좌표 x1,y1,x2,y2x1 = 50y1 = 50x2 = 100y2 = 100# crop imagecrop_image = image[y1:y2,x1:x2]# save image cv2.imwrite('/my_dir/crop_img.png',crop_image) 이미지에서 pixel좌표를 가지고 위치를 지정하는데, 왼쪽 맨 위가 (0,0)이고 맨 오른쪽은 (w,0), 맨 왼쪽아래는 (w,h), 맨 오른쪽 아래는 (0,h)이렇게 나타낸다.  여기서 w, h는 이미지의 width와 height을 나..

OpenCV 2024.08.17

[OpenCV] 이미지 처리 (resize)

보통 딥러닝을 할 때 input 이미지 크기를 작게 만들어서 학습한다. 아무래도 이미지가 크면 연산량도 많아지고, 모델도 커질 수 밖에 없기 때문이다.  import cv2# 이미지 읽기image = cv2.imread('/my_dir/my_image.png')# resize 하기# cv2.resize(src, dsize, dst=None, fx=None, fy=None, interpolation=None)resized = cv2.resize(image, dsize=(224,224)) cv2.resize를 할때 보간법(interpolation)을 옵션으로 사용할 수 있는데,  cv2.INTER_NEAREST: 가장 가까운 픽셀 값을 사용하여 빠르게 처리하지만, 이미지 확대 시 계단 현상이 발생할 수 있..

OpenCV 2024.08.17

[OpenCV] 이미지 처리 (밝기 조절)

딥러닝을 할 때 이미지 증강 기법으로 밝기나 명도를 조절하기도 한다. 오늘은 cv2를 이용해 이미지 밝기, 명도를 조절해보도록 하자. ## 이미지 밝기 조절 ##import cv2# 이미지 읽기image = cv2.imread('/my_dir/input_image.png')# 밝기 조절 값 설정 (양수는 밝기 증가, 음수는 밝기 감소)brightness_value = 50# 밝기 조절bright_image = cv2.convertScaleAbs(image, beta=brightness_value)# 결과 이미지 보기cv2.imshow('Bright Image', bright_image)cv2.waitKey(0)cv2.destroyAllWindows()# 결과 이미지 저장하기cv2.imwirte("/my_..

OpenCV 2024.08.17

[OpenCV] 이미지 처리 (flip, rotation)

딥러닝에서 영상이나 이미지 처리를 할 때 opencv나 pillow를 많이 사용한다. 두 라이브러리는 비슷하면서도 다른데, opencv로 읽은 이미지는 BGR형식이고, pillow로 읽은 이미지는 RGB형식이다. 대부분의 딥러닝에 사용되는 이미지는 rgb형식으로 많이 쓰기 때문에, 한번 더 처리를 해야하는 opencv보다 pillow를 많이 쓸거 같지만 그냥 비슷하게 둘 다 쓰는것 같다.  이미지를 읽는 방법은 매우 간단하다.import cv2image_path = "/my_dir/my_image.png"image = cv2.imread(image_path) 그냥 cv2를 import하고 imread를 사용해주면 된다. 아! 만약 cv2가 import가 안된다면, 아래와 같이 설치해주자pip instal..

OpenCV 2024.08.17
728x90
반응형