python 에서 opencv 이미지 중첩,이미지 융합,위치 별 작업 의 구체 적 인 실현

1 이미지 중첩
OpenCV 함수 cv.add()또는 numpy 작업 을 통 해 두 개의 그림 을 간단하게 추가 할 수 있 습 니 다.res=img 1+img 2.두 그림 은 같은 깊이 와 유형 을 가 져 야 하거나 두 번 째 그림 은 스칼라 값 일 수 있 습 니 다.
NOTE:
  • OpenCV 추 가 는 포화 작업,즉 상한 값 이 있 고 Numpy 추 가 는 모 연산 이다
  • 두 개의 그림 을 추가 할 때 OpenCV 기능 은 더 좋 은 결 과 를 제공 합 니 다.그래서 항상 OpenCV 기능 을 잘 지 킵 니 다
  • 코드:
    
    import cv2
    import numpy as np
    
    x = np.uint8([250])
    y = np.uint8([10])
    
    print( cv2.add(x,y) ) # 250+10 = 260 => 255
    print( x+y )          # 250+10 = 260 % 256 = 4
    
    
    출력:
    [[255]]
    [4]
    2 이미지 융합
    이것 도 이미지 덧셈 이지 만 이미지 에 서로 다른 가중치(0 에서 1 사이)를 부여 하여 혼합 감 이나 투명 감 을 가지 게 한다.
    코드:
    
    import cv2
    import numpy as np
    
    img1 = cv2.imread('img.jpg')
    img2 = cv2.imread('img2.jpg')
    img2 = cv2.resize(img2,(480,331))#      
    
    dst = cv2.addWeighted(img1,0.5,img2,0.5,0)
    
    cv2.imshow('dst',dst)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

    3 비트 조작
    비트 AND,OR,NOT,XOR 연산 포함.
    opencv 로 고 를 그림 위 에 놓 고 두 그림 을 겹 치면 색상 이 변 합 니 다.두 그림 을 융합 시 키 면 투명 한 효 과 를 얻 을 수 있 습 니 다.투명 하지 않 기 를 바 랍 니 다.만약 에 사각형 구역 이 라면 ROI 를 사용 하여 기 존 에 설명 한 동작 을 할 수 있 습 니 다.그러나 opencv 로 고 는 사각형 이 아니 라 위치 에 따라 관련 기능 을 수행 할 수 있 습 니 다.
    코드:
    
    import cv2
    import numpy as np
    
    img1 = cv2.imread('img.jpg')
    img2 = cv2.imread('img1.jpg')
    
    img2 = cv2.resize(img2,(100,100))
    # I want to put logo on top-left corner, So I create a ROI
    rows,cols,channels = img2.shape
    roi = img1[0:rows, 0:cols ]
    
    # Now create a mask of logo and create its inverse mask also
    img2gray = cv2.cvtColor(img2,cv2.COLOR_BGR2GRAY)
    ret, mask = cv2.threshold(img2gray, 200, 255, cv2.THRESH_BINARY)
    mask_inv = cv2.bitwise_not(mask)
    
    # Now black-out the area of logo in ROI
    img1_bg = cv2.bitwise_and(roi,roi,mask = mask)
    
    # Take only region of logo from logo image.
    img2_fg = cv2.bitwise_and(img2,img2,mask = mask_inv)
    
    # Put logo in ROI and modify the main image
    dst = cv2.add(img1_bg,img2_fg)
    img1[0:rows, 0:cols ] = dst
    
    cv2.imshow('res',img1)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
    

    Arithmetic Operations on Images
    python 에서 opencv 이미지 중첩,이미지 융합,위치 별 작업 의 구체 적 인 실현 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 opencv 이미지 중첩,이미지 융합,위치 별 작업 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!

    좋은 웹페이지 즐겨찾기