首页 > 解决方案 > Python - OpenCV - 二值化以隔离与背景颜色相同的对象

问题描述

我需要隔离下图中的纸板目标并对其进行二值化,使目标为白色,背景为黑色。通常,这不是问题,但背景几乎与目标颜色完全相同。

尝试:

# 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()

尝试的图像提取

如何在 Python 3 中使用 OpenCV 对该图像进行二值化?

原始图像

标签: python-3.ximageopencvsignal-processing

解决方案


推荐阅读