728x90
opencv 라이브러리 임포트
import cv2
특정 색 검출
cv2.inRange(이미지, 최소 뽑을 bgr값, 최대 뽑을 bgr값)
예제 이미지로 빨, 초, 파를 검출해보겠습니다.
img = cv2.imread('data/rgb.jpg')
red = cv2.inRange(img, (0,0,128), (128,128,255)) # 빨간 색만 뽑기
# cv2.imwrite('data/red.jpg', red)
blue = cv2.inRange(img, (128,0,0), (255,128,128)) # 파란 색만 뽑기
# cv2.imwrite('data/blue.jpg', blue)
green = cv2.inRange(img, (0,128,0), (128,255,128)) # 초록 색만 뽑기
# cv2.imwrite('data/green.jpg', green)
cv2.imshow('original', img)
cv2.imshow('red', red)
cv2.imshow('blue', blue)
cv2.imshow('green', green)
cv2.waitKey()
cv2.destroyAllWindows()
빨간 색 검출
초록 색 검출
파란 색 검출
cv2.inRange()는 크로마키 할 때 유용합니다.
사진을 초록색 부분만 검출합니다
이제 원하는 backgroud와 결합합니다
그러면
+ 이미지 사이즈 변환
cv2.resize(이미지, (바꿀 w, 바꿀h))
img.shape에서
행이 height이고, 열이 width입니다!
img_height, img_width, channel = img.shape
완성
img = cv2.imread('data/ss.jpg') # 심슨 이미지
green_mask = cv2.inRange(img, (0,128,0), (128,255,128)) # 초록색만 뽑은 이미지
backgroud = cv2.imread('data/redcarpet.jpg') # 배경으로 쓸 레드카펫 이미지
# 이미지 사이즈 변환
resize_bg = cv2.resize(backgroud, (img.shape[1], img.shape[0])) # (width, height)
# 마스킹
cv2.copyTo(resize_bg, green_mask, img)
cv2.imshow('masking', img)
cv2.waitKey()
cv2.destroyAllWindows()
'비전' 카테고리의 다른 글
[MediaPipe] 포즈 인식 (0) | 2024.08.25 |
---|---|
[MediaPipe] 얼굴 인식 (0) | 2024.08.23 |
[OpenCV] 그리기 함수 (0) | 2024.08.19 |
[OpenCV] 마스킹 (0) | 2024.08.18 |
[OpenCV] 이미지, 동영상 (0) | 2024.08.17 |