我需要删除此图像中除树及其叶子以外的所有内容。 我正在寻找有关如何删除不属于树的所有内容的建议。我需要处理的图像是
答案 0 :(得分:0)
这个问题很广泛。但是对于您提供的图像,有一种解决方法。您可以通过将图像转换为其他颜色空间来分割前景。
请注意,蓝天和云彩与前景中的树叶形成鲜明对比。在色调通道上应用简单的阈值将分割大部分叶子。
代码:
import numpy as np
import cv2
im = cv2.imread('C:/Users/Jackson/Desktop/leaves.jpg', 1)
im = cv2.resize(im, (0, 0), fx = 0.5, fy = 0.5)
imhsv = cv2.cvtColor(im, cv2.COLOR_BGR2HSV)
cv2.imshow('Hue', imhsv[:,:,0])
#--- Otsu threshold ---
ret, thresh = cv2.threshold(imhsv[:,:,0], 0, 255, cv2.THRESH_BINARY_INV+cv2.THRESH_OTSU)
cv2.imshow('thresh',thresh)
#--- Masking with the original image ---
fin = cv2.bitwise_and(im, im, mask = thresh)
cv2.imshow('fin', fin)
注意:
这不是一般的解决方案。这专用于此图像和具有对比色的图像。对于更通用的方法,您可以尝试GrabCut算法,该算法适用于简单图像。