>백엔드 개발 >파이썬 튜토리얼 >이미지 마스크 처리의 Python 구현에 대한 자세한 설명

이미지 마스크 처리의 Python 구현에 대한 자세한 설명

coldplay.xixi
coldplay.xixi앞으로
2020-09-14 13:13:154739검색

이미지 마스크 처리의 Python 구현에 대한 자세한 설명

관련 학습 권장 사항: python tutorial

이미지 마스크(이미지 마스크): 선택한 이미지, 그래픽 또는 개체를 사용하여 처리할 이미지를 차단하고(부분적으로 또는 완전히) 이미지를 제어합니다. 치료 영역이나 과정. 가려진 특정 이미지나 사물을 마스크라고 부르기 때문에 이미지 처리를 할 때 이미지를 마스킹해야 한다는 요구가 많은데, 다음에는 고양이와 강아지 사진을 함께 보여드리겠습니다.

먼저 렌더링 살펴보기:

이미지 마스크 처리의 Python 구현에 대한 자세한 설명
이미지 마스크 처리의 Python 구현에 대한 자세한 설명
이미지 마스크 처리의 Python 구현에 대한 자세한 설명

Python은 이미지의 마스크 처리를 구현합니다.

  • 필요한 라이브러리 가져오기
  • 마스크 이미지 만들기
    • 사각형 마스크
    • 원형 마스크
  • 마스크는 원본 이미지와 접합됩니다
  • 이미지 표시
  • 효과 표시
  • 요약

필요한 라이브러리 가져오기

이번에 필요한 라이브러리 리소스는cv2numpy,可通过pip install xxx다운로드됩니다.

import cv2
import numpy as np复制代码

마스크 이미지 만들기

마스크 만들기는 이미지 크기에 따라 다릅니다. 물론, 원하는 마스크를 선택할 수도 있습니다. 여기서 만든 마스크는 정사각형 마스크와 원형 마스크입니다.

사각형 마스크

마스크 좌표는 [10:170, 50:220] 입니다.

# 创建掩膜
mask = np.zeros([img.shape[0], img.shape[1]], dtype=np.uint8)
mask[10:170, 50:220] = 255复制代码

원형 마스크

마스크 좌표:
x = 140
y = 100
r = 80

# 创建掩膜
x = 140
y = 100
r = 80
mask = np.zeros(img.shape[:2], dtype=np.uint8)
mask = cv2.circle(mask, (x, y), r, (255, 255, 255), -1)复制代码

마스크는 원본 이미지와 이어져 있습니다

Cv2.add는 이미지를 병합하는 데 사용되며 마스크는 원본 이미지와 결합됩니다. 이미지가 연결되고 병합됩니다.

image = cv2.add(img, np.zeros(np.shape(img), dtype=np.uint8), mask=mask)复制代码

디스플레이 이미지

# 展示原图
cv2.imshow("img", img)
# 展示掩膜图片
cv2.imshow("mask", mask)
# 展示添加掩膜效果图片
cv2.imshow("image", image)复制代码

효과 디스플레이

원본 이미지:

이미지 마스크 처리의 Python 구현에 대한 자세한 설명

정사각형 마스크 이미지:

이미지 마스크 처리의 Python 구현에 대한 자세한 설명

이미지를 원본 이미지와 병합:

이미지 마스크 처리의 Python 구현에 대한 자세한 설명

원형 마스크 이미지:

이미지 마스크 처리의 Python 구현에 대한 자세한 설명

원본 이미지와 병합된 원형 마스크:

이미지 마스크 처리의 Python 구현에 대한 자세한 설명

요약

폐쇄 마스크의 원리는 매우 간단합니다. 먼저 검정색 이미지를 만듭니다. 동일한 크기로 표시해야 하는 영역의 픽셀을 흰색으로 변경하고 마지막으로 cv2.add를 사용하여 이미지와 마스크를 중첩하여 이미지의 폐색 표시를 달성합니다.

프로그래밍 학습에 대해 더 자세히 알고 싶다면 php training 칼럼을 주목해주세요!

위 내용은 이미지 마스크 처리의 Python 구현에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 juejin.im에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제