import matplotlib.pyplot as plt
import numpy as np
import cv2 #OpenCv
Read in the display the image
# Read in the image
image = cv2.imread('image_name.jpg')
#print out the type of image data and its dimension
print('This image is :',type(image),
'with dimensions', image.shape)
%matplotlib inline
plt.imashow(image)
此時(shí)你會(huì)發(fā)現(xiàn)背景可能是紅色,不是預(yù)料的藍(lán)色,這是因?yàn)镺penCv會(huì)把彩色圖像讀取成BGR(藍(lán)綠紅)圖像
image_copy = np.copy(image) #make a copy
# 改成RGB
image_copy = cv2.cvtColor(image_copy, cv2.COLOR_BGR2RGB)
plt.imshow(image_copy)

定義顏色閾值
#defin
e our color selection boundaries in RGB value
lower_blue = np.array([0,0,230])
upper_blue = np.array([100,150,255])
Create mask #把我們選定的感興趣區(qū)域分離出來(lái)以便進(jìn)行操作
mask= cv2.inRange(image_copy, lower_blue,upper_blue) # mask 會(huì)顯示出在范圍內(nèi)的像素
# Vizualize the mask
plt.imshow(mask, cmap ='gray')

# 展示主體
masked_image = np.copy(image_copy)
masked_image[mask != 0] = [0,0,0]

# Mask and add a background image
background_image = cv2.imread('image.jpg')
background_image = cv2.cvtColor(background_image,cv2.COLOR_BGR2RGB)
crop_background = background_image(0:514,0:816) #調(diào)整圖片尺寸
crop_background[mask == 0]= [0,0,0]
complete_image = crop_background + masked_image
plt.imshow(complete_image)
