Python을 사용하여 그림에서 윤곽 추출을 수행하는 방법
소개:
이미지 처리 및 컴퓨터 비전 분야에서 윤곽 추출은 매우 중요한 작업입니다. 영상 속 대상 객체를 배경에서 분리하고 객체의 형상 가장자리 정보를 추출할 수 있습니다. 이 기사에서는 Python에서 OpenCV 라이브러리를 사용하여 이미지에서 윤곽선을 추출하는 방법을 소개합니다.
OpenCV 라이브러리 설치
시작하기 전에 OpenCV 라이브러리가 설치되어 있는지 확인해야 합니다. pip 명령을 사용하여 설치할 수 있습니다.
pip install opencv-python
필요한 라이브러리 가져오기
먼저 OpenCV 라이브러리와 numpy 라이브러리를 가져와야 합니다. OpenCV는 이미지 처리에 사용되고 numpy는 배열 작업에 사용됩니다.
import cv2 import numpy as np
이미지 로드
OpenCV의 imread
기능을 사용하여 이미지를 로드하세요. 샘플 이미지는 로컬에 저장되며 실제 상황에 따라 경로를 수정할 수 있습니다. imread
函数加载图片。示例图片保存在本地,可以根据实际情况修改路径。
image = cv2.imread('path/to/image.jpg')
转换为灰度图像
由于轮廓提取通常在灰度图像上进行,因此需要将彩色图像转换为灰度图像。可以使用OpenCV的cvtColor
函数实现。
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
使用阈值进行二值化处理
轮廓提取常常通过对图像进行二值化处理来实现。可以使用OpenCV的threshold
函数将灰度图像转化为二值图像。
_, threshold = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)
进行轮廓提取
使用OpenCV的findContours
函数对二值图像进行轮廓提取。该函数会返回提取得到的轮廓以及层次结构。
contours, _ = cv2.findContours(threshold, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
绘制轮廓
可以使用OpenCV的drawContours
函数将提取得到的轮廓绘制在原始图像上。
cv2.drawContours(image, contours, -1, (0, 255, 0), 2)
显示结果
最后使用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库对图片进行轮廓提取。通过对图像进行灰度转换、二值化处理和使用findContours
rrreee
cvtColor
함수를 사용하여 달성할 수 있습니다. 🎜rrreee🎜🎜🎜임계값을 사용한 이진화🎜윤곽선 추출은 종종 이미지를 이진화하여 달성됩니다. OpenCV의 threshold
함수를 사용하여 회색조 이미지를 바이너리 이미지로 변환할 수 있습니다. 🎜rrreee🎜🎜🎜윤곽 추출🎜OpenCV의 findContours
기능을 사용하여 바이너리 이미지에서 윤곽 추출을 수행합니다. 이 함수는 추출된 윤곽선과 계층을 반환합니다. 🎜rrreee🎜🎜🎜윤곽선 그리기🎜 OpenCV의 drawContours
함수를 사용하면 추출된 윤곽선을 원본 이미지에 그릴 수 있습니다. 🎜rrreee🎜🎜🎜결과 표시🎜마지막으로 OpenCV의 imshow
함수를 사용하여 결과를 표시합니다. 🎜rrreee🎜🎜전체 코드 예: 🎜rrreee🎜결론: 🎜이 기사에서는 Python에서 OpenCV 라이브러리를 사용하여 이미지에서 윤곽선 추출을 수행하는 방법을 소개합니다. 이미지에 대해 그레이스케일 변환과 이진화를 수행하고 findContours
함수를 사용하여 윤곽선을 추출하면 최종적으로 추출된 윤곽선을 원본 이미지에 그릴 수 있습니다. 윤곽 추출은 이미지 처리, 컴퓨터 비전, 표적 탐지 및 기타 분야에서 널리 사용될 수 있으며 매우 실용적인 기술입니다. 🎜위 내용은 Python을 사용하여 그림에서 윤곽선을 추출하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!