Tensorflow 用机器学习去除手写签名图像中的背景

Tensorflow 用机器学习去除手写签名图像中的背景,tensorflow,machine-learning,image-processing,deep-learning,artificial-intelligence,Tensorflow,Machine Learning,Image Processing,Deep Learning,Artificial Intelligence,我是机器学习新手。 我想准备一份底部有签名的文件。 为此,我拍摄了一张用户签名的照片,以放置在文档中 如何使用机器学习仅从图像中提取签名部分并将其放置在文档上? 输入示例: 应以gif格式输出: 在发布此类问题之前,请进行研究。一个简单的谷歌搜索“从图像python中提取签名”给出了如此多的结果 还有许多其他类似的选择。请看一看并尝试几种方法 如果您还有一些问题或疑问,请发布您采取的方法,并进行讨论。提取绿色图像平面。然后取每个像素灰度值的互补值作为透明度系数。然后可以执行到目标的合成

我是机器学习新手。 我想准备一份底部有签名的文件。
为此,我拍摄了一张用户签名的照片,以放置在文档中

如何使用机器学习仅从图像中提取签名部分并将其放置在文档上?
输入示例:

应以gif格式输出:

在发布此类问题之前,请进行研究。一个简单的谷歌搜索“从图像python中提取签名”给出了如此多的结果

  • 还有许多其他类似的选择。请看一看并尝试几种方法


    如果您还有一些问题或疑问,请发布您采取的方法,并进行讨论。

    提取绿色图像平面。然后取每个像素灰度值的互补值作为透明度系数。然后可以执行到目标的合成


    使用OpenCV的简单图像处理技术应该可以工作。其思想是获得一个二进制图像,然后按位和图像删除非签名细节。结果如下:

    输入图像

    二值图像

    结果

    代码


    在我看来,机器学习对于这项任务来说是无关紧要的/过火的。“预期输出”的图像没有任何意义。
    import cv2
    
    # Load image, convert to grayscale, Gaussian blur, Otsu's threshold
    image = cv2.imread('1.jpg')
    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    blur = cv2.GaussianBlur(gray, (3,3), 0)
    thresh = cv2.threshold(blur, 0, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU)[1]
    
    # Bitwise-and and color background white
    result = cv2.bitwise_and(image, image, mask=thresh)
    result[thresh==0] = [255,255,255]
    
    cv2.imshow('thresh', thresh)
    cv2.imshow('result', result)
    cv2.waitKey()