我正在尝试对番茄作物的叶子图像进行分割。我想转换如下图像

opencv - PlantVillage数据集中的番茄叶图像分割问题-LMLPHP

到具有黑色背景的后续图像

opencv - PlantVillage数据集中的番茄叶图像分割问题-LMLPHP

我已经从Github引用了此代码

但是它在这个问题上做得不好,它做了类似opencv - PlantVillage数据集中的番茄叶图像分割问题-LMLPHP的事情

有人可以建议我这样做吗?

最佳答案

使用HSV -colorspace可以分离图像。背景的饱和度很小,因此对饱和度进行阈值处理可消除灰色。

结果:

opencv - PlantVillage数据集中的番茄叶图像分割问题-LMLPHP

码:

import numpy as np
import cv2
# load image
image = cv2.imread('leaf.jpg')
# create hsv
hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
 # set lower and upper color limits
low_val = (0,60,0)
high_val = (179,255,255)
# Threshold the HSV image
mask = cv2.inRange(hsv, low_val,high_val)
# remove noise
mask = cv2.morphologyEx(mask, cv2.MORPH_CLOSE, kernel=np.ones((8,8),dtype=np.uint8))
# apply mask to original image
result = cv2.bitwise_and(image, image,mask=mask)

#show image
cv2.imshow("Result", result)
cv2.imshow("Mask", mask)
cv2.imshow("Image", image)

cv2.waitKey(0)
cv2.destroyAllWindows()

09-10 06:48
查看更多