OpenCV를 사용하여 종이에 누른 인감을 전자화 해 보았습니다.

Motive



Excel 시트나 word로 자신의 인감을 날인하는 부분이 있거나 합니다. 조금 중요한 서류라면 시청에 등록되어 있는 인감 증명과 같은 것을 사용하고 싶을 때가 있습니다만, 이전에는 한번 편의점에서 종이를 인쇄해 날인해, 다시 스캔으로 pdf화해 제출을 했습니다.

상당한 아날로그 처리를 하고 있었던 것입니다만, 인감을 이미지화해 시트에 붙여 넣을 수 있으면 편의점에 가는 수고가 없어져 좋을까라고 생각하는 방법을 생각해 보았습니다.

처음에는 인감을 촬영하고, PowerPoint나 프리의 이미지 편집 툴을 사용해 배경색을 투과하려고 했습니다만 종이 질에 의해서 모두를 변환하는 것은 할 수 없고 단념해 버렸습니다.

그래서 시행착오해서 결국 OpenCV에서 이미지 처리를 몇 줄 써서 문제를 해결했으므로 비망록으로 남겨 둡니다.

Dataset



액세어 에 있던 인감 샘플을 사용했습니다.


Method


  • 이진화 + 이미지 반전
  • 원본 이미지와 1 이미지로 마스킹
  • 배경 이미지 투과 (α 값 100 %)

  • 개발


    import cv2
    import sys
    import numpy as np
    
    if __name__ == '__main__':
    
        if len(sys.argv) != 2:
            sys.exit()
    
        window_name = "sample"
        img_path = sys.argv[1]
    
        mat = cv2.imread(img_path)
        gray = cv2.cvtColor(mat, cv2.COLOR_BGR2GRAY)
        cv2.imwrite("gray.png", gray)
    
        #二値化
        ret2, mono = cv2.threshold(gray, 0, 255, cv2.THRESH_OTSU + cv2.THRESH_BINARY_INV) 
        cv2.imwrite("mono.png", mono)
    
        #マスキング処理
        dst = cv2.bitwise_and(mat,mat,mask=mono)
        cv2.imwrite("dst.png", dst)
    
        #channelを3 -> 4に変更
        alpha = cv2.cvtColor(dst, cv2.COLOR_BGR2BGRA)
    
        #背景が黒い部分のみ透過
        for i,col in enumerate(dst):
            for j,row in enumerate(col):
                color = dst[i][j]
                if (color == np.array([0,0,0])).all():
                    alpha[i][j][3] = 0
    
        cv2.imshow(window_name, alpha)
        cv2.imwrite("out.png", alpha)
        cv2.waitKey(0)
        cv2.destroyWindow(window_name)
    
    

    이번에는 도중까지 처리한 화상 데이터도 출력하고 있습니다.

    Result




    처리 흐름
    output


    원본 데이터


    흑백


    이진화 + 반전


    마스킹


    배경색 투명(처리 종료)



    Future


    cv2.bitwise_and 를 이용하면 배경투과는 간단하게 작성할 수 있습니다.
    툴을 사용해 시간이 걸릴 것 같으면 이쪽이 좋을 것 같습니다.

    Reference


  • python + Opencv로 이미지 처리 5 (이미지 결합 및 마스크)
  • Python, OpenCV, NumPy로 이미지 알파 블렌딩 및 마스크 처리

  • 액세어
  • 인감에 사용한 원래 데이터 세트

  • 좋은 웹페이지 즐겨찾기