-
반응형
이미지의 전경을 제거해주는 사이트가 있습니다.
www.remove.bg/ko이 사이트와 같이 완벽하게 제거하는 코드는 구현하기 힘들지만 누구나 파이썬으로 어느정도 따라 해 볼수 있습니다.
import numpy as np import cv2 imageUrl = '' img = cv2.imread(imageUrl) mask = np.zeros(img.shape[:2],np.uint8) bgdModel = np.zeros((1,65),np.float64) fgdModel = np.zeros((1,65),np.float64) rect = (1,1,665,344) cv2.grabCut(img,mask,rect,bgdModel,fgdModel,5,cv2.GC_INIT_WITH_RECT) mask2 = np.where((mask==2)|(mask==0),0,1).astype('uint8') img = img*mask2[:,:,np.newaxis] tmp = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) _,alpha = cv2.threshold(tmp,0,255,cv2.THRESH_BINARY) b, g, r = cv2.split(img) rgba = [b,g,r, alpha] dst = cv2.merge(rgba,4) cv2.imwrite("result.png", dst)
opencv의 grabCut를 사용하여 전경 파악하여 제거하고 제거된 영역을 알파스케일로 변경하는 로직입니다.
imageUrl 변수에 이미지 위치를 넣어주세요. (ex C:\test.jpg)
환경: Python3.8
반응형'코딩' 카테고리의 다른 글
REACT-NATIVE 버튼 둥글게 만들기 (0) 2020.11.11 react native 안드로이드 스튜디오에서 에뮬레이터 앱 실행이 안되는 현상 (0) 2020.11.09 REACT NATIVE란 (0) 2020.11.09 HTTPS, 대칭 키와 비대칭 키 (0) 2020.11.04 ubuntu 16.04 MongoDB 오류 - Error: couldn't connect to server 127.0.0.1:... (0) 2020.10.28