2017-12-27 5 views
1

프로젝트 작업을 위해 바이너리 분할을 구현하려고했지만 이진 분할 코드에 집착했습니다. 난 그냥 그림의 플레이어와 배경의 continuos 세분화를 얻을 this 이미지 (손의 적절한 세분화)와 같은 싶습니다.파이썬에서 복잡한 이미지의 바이너리 분할.

imgort numpy as np     
import cv2 
from matplotlib import pyplot as plt 

img = cv2.imread('main-qimg-f32bfc3d08d8809a8b3bb7d91c5d183d.png') 
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) 
ret, thresh = 
cv2.threshold(gray,0,255,cv2.THRESH_BINARY_INV+cv2.THRESH_OTSU) 

%pylab inline 
import matplotlib.image as mpimg 
imgplot_0 = plt.imshow(img) 
plt.show() 
imgplot = plt.imshow(thresh) 
plt.show() 

그러나이 코드는 결국 this 이미지를 제공합니다. 원본 이미지와 위 코드를 실행 한 후에 얻을 이미지.

여기서 알 수 있듯이 바이너리 분할은 좋지 않습니다. 나는 이미지에서 플레이어의 총을 추출하고 싶다. 어쩌면 이미지에 노이즈와 가짜 에지가 있기 때문일 수 있습니다.

올바른 분류 방법을 얻으려면 코드에서 무엇을 변경해야합니까?

미리 감사드립니다.

답변

0

달성하고자하는 것은 사실상 불가능합니다.

색상만으로는 "플레이어의 조각"과 "배경의 조각"을 구분할 수 없습니다. 이미지가 너무 복잡하고 다채 롭습니다.

이러한 세분화를 달성하려면 플레이어의 색상 모양에 대한 많은 사전 정보가 필요합니다. 이를 객체 카테고리 감지라고하며 아직 공개 연구 주제입니다.

손의 이미지는 백만 번 더 간단합니다 (그러나 손목이 빠져 있다고 의심 할 수도 있음).

관련 문제