2024-07-03 07:23:10 发布
网友
我有一组透明的PNG图像,边缘有黑色的瑕疵,比如:
我在找一种自动清理边界的方法。我试着简单地屏蔽掉某个RGB值下的像素,但是图像本身也可以包含黑色像素,然后这些像素就会被过滤掉。我用的是Python3和opencv3/PIL。在
我的问题是:如何在保留不属于边缘的黑色像素的同时去除黑色边缘?
编辑:正如usr2564301在下面指出的,很少(如果有的话)边缘像素是纯黑色的。我仍然需要删除它们,所以我想使用一些阈值并删除与透明像素相邻的像素,它们是:
可以在ImageMagick中对alpha通道的边进行抗锯齿处理,如下所示:
输入:
convert image.png -channel a -blur 0x2 -level 50x100% +channel result.png
如果黑色边框较细,请使用小于2的值调整2;如果黑色边框较宽,则使用大于2的值调整2。在
尝试使用alpha通道并将其侵蚀几个像素。我用ImageMagick来说明这项技术,因为这更简单,但是使用OpenCV可以做同样的事情:
convert pinkboythingwithcathead.png \( +clone -alpha extract -morphology erode disk:2 \) -compose copy-alpha -composite result.png
可以在ImageMagick中对alpha通道的边进行抗锯齿处理,如下所示:
输入:
如果黑色边框较细,请使用小于2的值调整2;如果黑色边框较宽,则使用大于2的值调整2。在
尝试使用alpha通道并将其侵蚀几个像素。我用ImageMagick来说明这项技术,因为这更简单,但是使用OpenCV可以做同样的事情:
相关问题 更多 >
编程相关推荐