algorithm – 如何擦除由线段和颜色块分隔的区域?

鉴于下图:

A和B的位置是已知的,图片的其余部分只是原始像素数据(仅红色和白色像素).我可以用什么算法擦除AB右边的部分?

最佳答案 有两个点定义一条线.线的等式分隔了必须被移除的像素.如果要以新边框顺利跟随形状曲线的方式删除点,则需要某种方式来插入形状边框(基于边框中其他点的信息).这种插值必须通过两个黑点.现在,如果您有插值,您可以计算两个黑点之间的插值曲线,并从曲线右侧设置为白色所有点.我可以建议从曲线中至少再使用一个点并使用一些
cubic spline interpolation.

编辑:
根据你的评论.

然后算法很简单:保持一个指针从低点(A)开始,沿边界(A’)移动,直到到达另一个点.这可以通过检查当前指针位置的邻居并比较颜色来完成.现在,当指针移动时,将指针(A’)之间的红点线移到线A(蓝色)之间,这些红线指定在A-B点之间(绿色).当行与另一个黑点相同时,存在指针位置(例如,A’和B在同一行上).然后以跟踪边界的相同方式从B点开始一个新指针,并移除两个指针A’和B’之间的红色像素.

点赞