如何将图像的斑点转移到白色背景?
How to transfer a blob of an image to a white background?
我正在尝试提取图像中网球的颜色特征。为了更简单,我认为将网球转移到白色 canvas 然后提取特征会更好。我正在通过直方图提取颜色特征。
我在网球落下的视频 (https://imgur.com/a/lbqOx6S) 的帧上使用了均值偏移图像分割算法。最初,我将帧转换为灰度并根据更新的帧制作直方图,但我意识到这是无效的,因为我正在尝试提取颜色特征。因此,我现在正在尝试将网球转换为白色 canvas,这样更容易将网球的颜色特征提取到直方图中。
来自您的分割图像:
我们可以注意到色差非常明显。在这种情况下,我们可以简单地转换成一种颜色space,可以更好地为我们区分这些颜色,例如HSV。在 HSV 中,色调通道包含颜色变化数据。在此图像中,这是色相通道:
由此,您只需分析图像直方图并确定一个简单的阈值即可。通过应用阈值,您达到了:
Here's a tutorial from the OpenCV documentation on how you can do this in Python. If you can't select this threshold manually, you can use Otsu's binarization method (OpenCV tutorial) on the H channel (splitting 来自 HSV 图像)。
然后你可以使用这个二值图像作为掩码来提取更多的特征。您不需要将图像转移到 white/black 背景,但是,如果您愿意,可以只应用此蒙版。参见 OpenCV - Apply mask to a color image。
我正在尝试提取图像中网球的颜色特征。为了更简单,我认为将网球转移到白色 canvas 然后提取特征会更好。我正在通过直方图提取颜色特征。
我在网球落下的视频 (https://imgur.com/a/lbqOx6S) 的帧上使用了均值偏移图像分割算法。最初,我将帧转换为灰度并根据更新的帧制作直方图,但我意识到这是无效的,因为我正在尝试提取颜色特征。因此,我现在正在尝试将网球转换为白色 canvas,这样更容易将网球的颜色特征提取到直方图中。
来自您的分割图像:
我们可以注意到色差非常明显。在这种情况下,我们可以简单地转换成一种颜色space,可以更好地为我们区分这些颜色,例如HSV。在 HSV 中,色调通道包含颜色变化数据。在此图像中,这是色相通道:
由此,您只需分析图像直方图并确定一个简单的阈值即可。通过应用阈值,您达到了:
Here's a tutorial from the OpenCV documentation on how you can do this in Python. If you can't select this threshold manually, you can use Otsu's binarization method (OpenCV tutorial) on the H channel (splitting 来自 HSV 图像)。
然后你可以使用这个二值图像作为掩码来提取更多的特征。您不需要将图像转移到 white/black 背景,但是,如果您愿意,可以只应用此蒙版。参见 OpenCV - Apply mask to a color image。