这是一个相当困难的任务,因为头发超过了你的投资回报率(痣)。我不知道如何帮助去除痣,但我可以帮助去除背部,就像照片中没有毛发一样。对于去除痣上的毛发,我建议您搜索“去除图像中的水印”和“深层神经网络”来训练一个去除毛发的模型(注意,这项任务将相当困难)。在
这就是说,为了去除背景,你可以尝试相同的代码,你已经准备好了没有头发检测。您将得到如下二值图像:
现在你的区域充满了白线(头发),这些线(头发)覆盖在你的轮廓上,这就是你的投资回报率,cv2.findContours()也会把它们挑出来,因为它们是相连的。但是如果你看图片,你会发现白线很细,你可以通过在图像上打开(cv2.morphologyEx)来将其从图像中移除。开口是先腐蚀后膨胀,所以当你用足够大的内核大小腐蚀图像时,白线会消失:
现在你有一个白点,周围有一些噪音,你可以通过执行另一个扩张来连接它(cv2.dilate()):
要使ROI更平滑,可以模糊图像cv2.blur():