Python - OpenCV - Binarize для изоляции объекта того же цвета, что и фон - PullRequest
0 голосов
/ 05 ноября 2018

Мне нужно изолировать картонную мишень на изображении ниже и преобразовать ее в двоичную форму, чтобы мишень была белой, а фон - черным. Обычно это не проблема, но цвет фона почти такой же, как у цели.

Попытка:

# LOAD IMAGE
img_filepath = 'real_6.png'
img = cv2.imread( img_filepath )
rgb_img = img[:,:,::-1]
plt.imshow( rgb_img )
plt.title('ORIGINAL')
plt.show()

img_gray = cv2.cvtColor( img, cv2.COLOR_BGR2GRAY )

# SMOOTH
blur_kernel = np.ones((5,5),np.float32)/30
blur_img = cv2.filter2D( rgb_img, -1, blur_kernel )

# THRESHOLD 
lower_color_rng = np.array( [100,50,100] )
upper_color_rng = np.array( [255,255,255] )
target_keyholes_img = cv2.inRange( blur_img, lower_color_rng, upper_color_rng )
plt.imshow( target_keyholes_img, cmap='gray' )
plt.title( 'THRESHOLD' )
plt.show()

Попытка извлечения изображения

Как я могу использовать OpenCV в Python 3 для бинаризации этого изображения?

Исходное изображение

...