一种 效果完美,并且绝对隐私安全的【身份证】抠像方式

我们经常会有需要提供身份证扫描件的需求,但是一般都需要在打印机上进行扫描才能实现,或者把身份证图像经过线上的第三方平台上传进行处理,但是身份证作为极其隐私的证件,我们非常不愿意把它使用任何的线上方式来进行处理,那么,我们能想到的最直接的方式,可能就是本地ps来处理。比如ps的魔棒工具用起来是效果不错的,但是它处理的边缘参差不齐,锯齿比较明显:

所以抠像最完美的方式,仍然是使用AI来进行抠像,但是为了确保私密性,我们在处理前,需要把敏感信息排除,例如我们可以提供这样的身份证图像:

然后用AI命令来进行处理,交给ai的命令是:

“将这个身份证的外轮廓以外的区域全部标记为 纯红色。”

于是我们得到了一些抠像非常完美的图片:

这样,我们就能够完美区分图像的有效区域,然后让它与原图调整为相同尺寸,保留非红色区域内容,就能得到完美的抠像结果, C# 的处理代码是:

var f_init = "F:\\init.jpg"; var f_red = "F:\\ai.png"; var img_init = System.Drawing.Image.FromFile(f_init) as System.Drawing.Bitmap; var img_red = System.Drawing.Image.FromFile(f_red) as System.Drawing.Bitmap; var img_new = new System.Drawing.Bitmap(img_init.Width, img_init.Height); for (int r = 0; r < img_init.Height; r++) { for (int c = 0; c < img_init.Width; c++) { var crred = img_red.GetPixel(c, r); var isred = crred.R - crred.G > 100 && crred.R - crred.B > 100; if (!isred) { img_new.SetPixel(c, r, img_init.GetPixel(c, r)); } else img_new.SetPixel(c, r, Color.White); } } img_new.Save("F:\\rst.png");

下图是得到的白色底背景的图像:

我们可以非常明显的看到比ps处理的图像好很多。

再来看一下效果比对:下图是用在线ps的魔棒工具,进行的抠像处理,毛刺感非常严重:

下图是ai抠像,在经过我们的内容提取之后的效果,边缘轮廓非常完美:

效果真的很棒。