Python opencv之提取图像中有用信息
opencv是一个用于处理图像的库,他有python的接口。
首先导入opencv及各种其他库
%matplotlib inline
import cv2
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
加载图片
image_add = r"C:\Users\Administrator\Desktop\blue.png"
image = cv2.imread(image_add, cv2.IMREAD_COLOR)
处理图片
#为图像生成一个mask
def mask_making(image):
image_hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
lower_hsv = np.array([0, 190, 0])
upper_hsv = np.array([255, 255, 255])
mask = cv2.inRange(image_hsv, lower_hsv, upper_hsv)
kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (11,11))
mask = cv2.morphologyEx(mask, cv2.MORPH_CLOSE, kernel)
return mask
#提取图像
def plant(image):
mask = mask_making(image)
output = cv2.bitwise_and(image, image, mask = mask)
return output
image_mask = mask_making(image)
image_out = plant(image)
fig, axs = plt.subplots(1, 3, figsize=(20, 20))
axs[0].imshow(image)
axs[1].imshow(image_mask)
axs[2].imshow(image_out)
处理结果: