> 백엔드 개발 > 파이썬 튜토리얼 > Python을 사용하여 그림에서 윤곽선을 추출하는 방법

Python을 사용하여 그림에서 윤곽선을 추출하는 방법

王林
풀어 주다: 2023-08-26 16:33:30
원래의
2152명이 탐색했습니다.

Python을 사용하여 그림에서 윤곽선을 추출하는 방법

Python을 사용하여 그림에서 윤곽 추출을 수행하는 방법

소개:
이미지 처리 및 컴퓨터 비전 분야에서 윤곽 추출은 매우 중요한 작업입니다. 영상 속 대상 객체를 배경에서 분리하고 객체의 형상 가장자리 정보를 추출할 수 있습니다. 이 기사에서는 Python에서 OpenCV 라이브러리를 사용하여 이미지에서 윤곽선을 추출하는 방법을 소개합니다.

  1. OpenCV 라이브러리 설치
    시작하기 전에 OpenCV 라이브러리가 설치되어 있는지 확인해야 합니다. pip 명령을 사용하여 설치할 수 있습니다.

    pip install opencv-python
    로그인 후 복사
  2. 필요한 라이브러리 가져오기
    먼저 OpenCV 라이브러리와 numpy 라이브러리를 가져와야 합니다. OpenCV는 이미지 처리에 사용되고 numpy는 배열 작업에 사용됩니다.

    import cv2
    import numpy as np
    로그인 후 복사
  3. 이미지 로드
    OpenCV의 imread 기능을 사용하여 이미지를 로드하세요. 샘플 이미지는 로컬에 저장되며 실제 상황에 따라 경로를 수정할 수 있습니다. imread函数加载图片。示例图片保存在本地,可以根据实际情况修改路径。

    image = cv2.imread('path/to/image.jpg')
    로그인 후 복사
  4. 转换为灰度图像
    由于轮廓提取通常在灰度图像上进行,因此需要将彩色图像转换为灰度图像。可以使用OpenCV的cvtColor函数实现。

    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    로그인 후 복사
  5. 使用阈值进行二值化处理
    轮廓提取常常通过对图像进行二值化处理来实现。可以使用OpenCV的threshold函数将灰度图像转化为二值图像。

    _, threshold = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)
    로그인 후 복사
  6. 进行轮廓提取
    使用OpenCV的findContours函数对二值图像进行轮廓提取。该函数会返回提取得到的轮廓以及层次结构。

    contours, _ = cv2.findContours(threshold, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
    로그인 후 복사
  7. 绘制轮廓
    可以使用OpenCV的drawContours函数将提取得到的轮廓绘制在原始图像上。

    cv2.drawContours(image, contours, -1, (0, 255, 0), 2)
    로그인 후 복사
  8. 显示结果
    最后使用OpenCV的imshow函数显示结果。

    cv2.imshow('Contours', image)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
    로그인 후 복사

完整代码示例:

import cv2
import numpy as np

# 加载图片
image = cv2.imread('path/to/image.jpg')

# 转换为灰度图像
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# 二值化处理
_, threshold = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)

# 轮廓提取
contours, _ = cv2.findContours(threshold, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)

# 绘制轮廓
cv2.drawContours(image, contours, -1, (0, 255, 0), 2)

# 显示结果
cv2.imshow('Contours', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
로그인 후 복사

结论:
本文介绍了如何使用Python中的OpenCV库对图片进行轮廓提取。通过对图像进行灰度转换、二值化处理和使用findContoursrrreee

🎜🎜흑백 이미지로 변환🎜윤곽선 추출은 일반적으로 회색조 이미지에서 수행되므로 컬러 이미지는 회색조 이미지로 변환해야 합니다. 이는 OpenCV의 cvtColor 함수를 사용하여 달성할 수 있습니다. 🎜rrreee🎜🎜🎜임계값을 사용한 이진화🎜윤곽선 추출은 종종 이미지를 이진화하여 달성됩니다. OpenCV의 threshold 함수를 사용하여 회색조 이미지를 바이너리 이미지로 변환할 수 있습니다. 🎜rrreee🎜🎜🎜윤곽 추출🎜OpenCV의 findContours 기능을 사용하여 바이너리 이미지에서 윤곽 추출을 수행합니다. 이 함수는 추출된 윤곽선과 계층을 반환합니다. 🎜rrreee🎜🎜🎜윤곽선 그리기🎜 OpenCV의 drawContours 함수를 사용하면 추출된 윤곽선을 원본 이미지에 그릴 수 있습니다. 🎜rrreee🎜🎜🎜결과 표시🎜마지막으로 OpenCV의 imshow 함수를 사용하여 결과를 표시합니다. 🎜rrreee🎜🎜전체 코드 예: 🎜rrreee🎜결론: 🎜이 기사에서는 Python에서 OpenCV 라이브러리를 사용하여 이미지에서 윤곽선 추출을 수행하는 방법을 소개합니다. 이미지에 대해 그레이스케일 변환과 이진화를 수행하고 findContours 함수를 사용하여 윤곽선을 추출하면 최종적으로 추출된 윤곽선을 원본 이미지에 그릴 수 있습니다. 윤곽 추출은 이미지 처리, 컴퓨터 비전, 표적 탐지 및 기타 분야에서 널리 사용될 수 있으며 매우 실용적인 기술입니다. 🎜

위 내용은 Python을 사용하여 그림에서 윤곽선을 추출하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿