OpenCV에서 이미지에 여백 추가

5123 단어 파이썬OpenCV

개요



파이썬 OpenCV에서 이미지에 여백을 추가하는 프로그램을 만들었습니다.
같은 폴더에 있는 이미지에 대해 일괄 처리할 수 있습니다.

개발 환경


  • Windows10
  • Python ver3.7.7
  • OpenCV ver3.4.1

  • 코드


    import cv2
    import os
    import glob
    
    
    def main():
        BLUE = [255,0,0]
        img_files = glob.glob('*.png')
    
        for f in img_files:
            img = cv2.imread(f)
            fname, fext = os.path.splitext(f)
    
            height, width, channels = img.shape
    
    
            #画像の下に余白追加
            output = cv2.copyMakeBorder(img, 50, 50, 50, 50, cv2.BORDER_CONSTANT, value=BLUE)     
            cv2.imwrite(fname+"_blue_flame.png", output)
    
    if __name__ == "__main__":
        main()
    

    BLUE의 괄호 안의 수치는 RGB의 값을 지정하고 있어 수치를 바꾸는 것으로 다른 색도 지정할 수 있습니다. 이 코드는 copyMakeBorder를 사용하며 원래 이미지의 상하 좌우에 청색을 50 픽셀 분 추가합니다.
    숫자를 꼬아서 추가하는 여백의 양과 색상을 변경할 수 있습니다.

    출력되는 이미지



    입력 한 이미지는 여기입니다.

    출력 된 이미지는 여기입니다.
     

    이 방법으로 원본 이미지에 여백으로 파란색이 추가되었습니다.
    원래의 이미지(이라스토야)의 배경은 투명합니다만, 여백 추가 처리를 하면 배경이 검게 되어 있습니다.

    배경이 투명하지 않은 이미지 (스키마너스 이미지 사용)에서는 다음과 같이 문제없이 사용할 수 있습니다.


    사용법



    위에 표시된 코드가 있는 파일과 여백을 추가하고 싶은 이미지를 같은 폴더에 넣고 코드를 실행하면 OK
    폴더에 넣은 이미지는 일괄 처리됩니다.
    처리 후에는 원래의 이미지도 남습니다.
    경로를 지정하면 별도로 같은 폴더가 아니더라도 OK
    이미지의 확장자에 맞게 코드를 다시 작성해야합니다 (이번에는 png 지정).

    참고로 한 사이트



    OpenCV 이미지의 기본 처리
    htp://bs. 그래 cs. 푹 빠져. 아 c. jp/sd/메 m r/오야마타/오펜 CV/html/py_개별 ls/py_이/py_바시 c_오 ps/py_바시 c_오 ps. HTML
    copyMakeBorder의 기능에 대해 더 자세히 설명합니다.

    [Python3.6] OpenCV에서 이미지를 4 분할
    htps : // 이 m / 버섯 15 / ms / 56c0 f 4c14 875199
    코드뿐만 아니라 기사를 작성하는 방법도 참고하고 있습니다.

    좋은 웹페이지 즐겨찾기