Python OpenCV 이미지 이동 의 실현 예시

새로운 것 을 배 울 때마다 지우 개 는 대량의 검색 을 한 후에 자신 이 이해 하기에 적합 한 부분 을 찾는다.
다시 그것 을 작은 시스템 으로 만들어 이 내용 에 대해 초보적인 이 해 를 얻 도록 한다.
오늘 한 시간 동안 핵심 적 으로 배 워 야 할 것 은 이미지 의 이동 이다.컴퓨터 에서 한 장의 그림 을 마음대로 열 어 이동 을 실현 하 는 것 은 매우 간단 하지만 코드 에서 새로운 개념 이 나 타 났 다.
OpenCV 이미지 이동 관련 자 료 를 검색 할 때 만 나 는 첫 번 째 신 개념 은 이다.
이런 수학 이름 을 볼 때마다 가슴 이 서늘 해 지고 수학 소 백 으로서 또 벌 벌 떨 어야 한다.
바 이 두 씨,백과사전 에서 어떻게 소 개 했 는 지 보 세 요.
Python OpenCV 图像平移,取经之旅第 10 天
위의 그림 에서 관련 소 개 를 본 후에 이 개념 에 대해 깊이 이해 하지 못 했다.먼저 사용 하고 이론 적 인 학습 관점 을 보완 하 는 데 착안 하여 우 리 는 먼저 이미지 의 평 이 를 실현 했다.
학습 과정 에서 개념 적 인 것 을 만나면 먼저 응용 한 다음 에 후속 적 인 깊이 있 는 학습 과정 에서 점차적으로 보완 할 수 있다.
cv2.warpAffine()모방 변환
이 방법 을 바탕 으로 관련 자 료 를 찾 아 모방 변환 의 기본 개념 을 얻 고 2 차원 좌표 에서 2 차원 좌표 간 의 선형 변환 을 얻 으 며 2 차원 도형 의'평직 성'과'평행 성'을 유지 해 야 한다.
복사 변환 에는 이동,크기 조정,뒤 집기,회전,잘라 내기 가 포함 되 어 있 습 니 다.
이 방법의 문법 구 조 는 다음 과 같다.

dst = cv2.warpAffine(src, M, dsize[, dst[, flags[, borderMode[, borderValue]]]])
매개 변수 설명:
  • src:그림 입력
  • M:2*3 transformation 매트릭스(매트릭스 전환)
  • dsize:출력 이미지 의 크기,형식(cols,rows),width 대응 cols,height 대응 rows
  • flags:선택 가능 한 매개 변수,삽입 방법의 조합(int 형식),기본 값 INTERLINEAR
  • borderMode:선택 가능 한 인자,경계 픽 셀 모드(int 형식),기본 값 BORDERCONSTANT
  • borderValue:선택 가능 한 매개 변수,경계 충전 값;기본 값 Scalar()즉 0
  • 정부 에서 찾 아 볼 수 있 는 영문 자 료 는 다음 과 같다.
    Python OpenCV 图像平移,取经之旅第 10 天
    플러그 인 방식(flags)은 다음 과 같은 종류 가 있 습 니 다.
  • INTER_LINEAR 선형 플러그 인
  • INTER_NEAREST 최근 인접 플러그 인
  • INTER_AREA 영역 삽입 값
  • INTER_CUBIC 세 번 째 플러그 인
  • INTER_LANCZOS 4 Lanczos 플러그 인
  • 일반적인 상황 에서wrapAffine앞의 세 가지 매개 변수,즉warpAffine(img,M,(rows,cols))를 사용 하여 기본 적 인 모방 변환 효 과 를 실현 하지만 이런 상황 에서 현상 이 나타난다.
    마지막 매개 변 수 는borderValue이 고 경계 에 채 워 진 색 입 니 다.기본 값 은 검은색 이 며 스스로 다른 색 으로 설정 할 수 있 습 니 다.
    구체 코드
    그림 이동 은 그림 위치의 이동 입 니 다.이동 하기 전에 행렬 M 을 먼저 전환 해 야 한다.그 중에서tx,ty는(x,y)방향 에서 의 위 치 를 나타 낸다.다음 과 같다.
    Python OpenCV 图像平移,取经之旅第 10 天
    테스트 코드 는 다음 과 같 습 니 다.중요 한 부분 은 주석 에서 설명 합 니 다.
    
    import numpy as np
    import cv2 as cv
    
    img = cv.imread('10.jpg', 1)
    rows, cols, channels = img.shape
    # [1,0,100]    100, [0,1,50]    50
    M = np.float32([[1, 0, 100], [0, 1, 50]])
    res = cv.warpAffine(img, M, (cols, rows))
    cv.imshow("img", res)
    cv.waitKey()
    
    특별 설명:cv.warpAffine방법의 세 번 째 매개 변 수 는 출력 이미지 의 크기 이 고 그 형식 은(width,height)이 어야 한다.width=열 수(cols),height=줄 수(rows)를 기억 하 십시오.
    다음은 코드 실행 결과 입 니 다.
    Python OpenCV 图像平移,取经之旅第 10 天 borderMode매개 변수 값 에 대한 설명:
    이 부분 은 가장자리 처리 와 관련 되 고 매 뉴 얼 을 뒤 져 보 는 과정 에서 찾 은 설명 방향BorderTypes이다.뒤 져 보 니 여전히 초 강 이 있 습 니 다.관련 내용 을 먼저 기록 하고 나중에 돌 이 켜 볼 수 있 습 니 다.참조 주소
    모든 값 은 다음 과 같이 나열 되 어 있 습 니 다.
  • BORDER_CONSTANT = 0
  • BORDER_REPLICATE = 1
  • BORDER_REFLECT = 2
  • BORDER_WRAP = 3
  • BORDER_REFLECT_101 = 4
  • BORDER_TRANSPARENT = 5
  • BORDER_REFLECT101 = BORDER_REFLECT_101
  • BORDER_DEFAULT = BORDER_REFLECT_101
  • BORDER_ISOLATED = 16
  • Python OpenCV 图像平移,取经之旅第 10 天 borderValue:그림 경계 처리 방식 이BORDER_CONSTANT일 때의 충전 값 입 니 다.
    테스트 코드 는 다음 과 같 습 니 다:
    
    import numpy as np
    import cv2 as cv
    
    img = cv.imread('10.jpg', 1)
    rows, cols, channels = img.shape
    M = np.float32([[1, 0, 100], [0, 1, 50]])
    res = cv.warpAffine(img, M, (cols, rows),
                        borderMode=cv.BORDER_CONSTANT, borderValue=(200, 66, 66))
    cv.imshow("img", res)
    cv.waitKey()
    
    OpenCV 막바지
    파 이 썬 OpenCV 이미지 이동 에 관 한 예제 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 관련 OpenCV 이미지 이동 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 바 랍 니 다!

    좋은 웹페이지 즐겨찾기