오늘날의 세상은 온갖 종류의 데이터로 가득 차 있으며, 그 속에서 이미지는 매우 중요한 부분을 차지합니다. 하지만 유용하게 사용하려면 이러한 이미지를 처리해야 합니다. 이미지 처리는 디지털 이미지의 품질을 향상시키거나 이미지에서 일부 정보를 추출하여 어떤 방식으로든 사용할 목적으로 디지털 이미지를 분석하고 조작하는 프로세스입니다.
이미지 처리의 일반적인 작업에는 이미지 표시, 기본 작업(예: 자르기, 뒤집기, 회전 등), 이미지 분할, 분류 및 특징 추출, 이미지 복원 및 이미지 인식 등이 포함됩니다. Python은 이 과학 프로그래밍 언어의 인기가 높아지고 많은 최첨단 이미지 처리 도구를 무료로 사용할 수 있기 때문에 이미지 처리 작업에 가장 적합한 선택입니다.
이미지 처리 작업에 사용되는 몇 가지 일반적인 Python 라이브러리를 살펴보겠습니다.
scikit-image는 numpy 배열을 기반으로 하는 오픈 소스 Python 패키지입니다. 연구, 교육 및 산업 응용 분야를 위한 알고리즘과 유틸리티를 구현합니다. Python을 처음 접하는 사람들에게도 매우 간단한 라이브러리입니다. 도서관의 코드는 품질이 매우 높으며 활동적인 자원봉사자 커뮤니티에 의해 작성된 동료 검토를 거쳤습니다.
사용 예: 이미지 필터링, 템플릿 매칭.
"skimage"를 사용하여 이 라이브러리를 가져올 수 있습니다. 대부분의 기능은 하위 모듈에서 찾을 수 있습니다.
import matplotlib.pyplot as plt %matplotlib inline from skimage import data,filters image = data.coins() # ... or any other NumPy array! edges = filters.sobel(image) plt.imshow(edges, cmap='gray')
템플릿 일치(match_template 함수 사용)
Numpy는 Python 프로그래밍의 핵심 라이브러리 중 하나이며 배열 구조를 지원합니다. 이미지는 본질적으로 데이터 포인트 픽셀을 포함하는 표준 Numpy 배열입니다. 따라서 슬라이싱, 마스킹, 팬시 인덱싱 등 기본적인 NumPy 작업을 사용하여 이미지의 픽셀 값을 수정할 수 있습니다. 이미지는 skimage를 사용하여 로드하고 matplotlib를 사용하여 표시할 수 있습니다.
사용 예: Numpy를 사용하여 이미지 감도 줄이기:
import numpy as np from skimage import data import matplotlib.pyplot as plt %matplotlib inline image = data.camera() type(image) numpy.ndarray #Image is a numpy array mask = image < 87 image[mask]=255 plt.imshow(image, cmap='gray')
scipy는 Numpy와 마찬가지로 Python의 또 다른 핵심 과학 모듈이며 기본 이미지 처리 및 처리 작업에 사용할 수 있습니다. 하위 모듈 scipy.ndimage가 n차원 NumPy 배열에서 작동하는 함수를 제공한다는 점은 언급할 가치가 있습니다. 이 패키지에는 현재 선형 및 비선형 필터링, 이진 형태, B-스플라인 보간 및 객체 측정과 같은 기능이 포함되어 있습니다.
사용 예: SciPy의 가우스 필터를 사용하여 이미지 흐림:
from scipy import misc,ndimage face = misc.face() blurred_face = ndimage.gaussian_filter(face, sigma=3) very_blurred = ndimage.gaussian_filter(face, sigma=5) #Results plt.imshow()
PIL(Python Imaging Library)은 열기, 처리 및 저장에 대한 지원을 추가하는 무료 Python 프로그래밍 언어 라이브러리입니다. 다양한 이미지 파일 형식을 지원합니다. 그러나 개발이 중단되었으며 마지막 업데이트는 2009년이었습니다. 다행스럽게도 PIL에는 설치가 매우 쉬운 Pillow라는 포크가 활발히 개발되고 있습니다. Pillow는 모든 주요 운영 체제에서 실행되며 Python 3을 지원합니다. 라이브러리에는 포인트 연산, 내장된 컨볼루션 커널 세트를 사용한 필터링, 색 공간 변환 등 기본적인 이미지 처리 기능이 포함되어 있습니다.
사용 예: ImageFilter를 사용하여 Pillow의 이미지 향상:
from PIL import Image, ImageFilter #Read image im = Image.open( 'image.jpg' ) #Display image im.show() from PIL import ImageEnhance enh = ImageEnhance.Contrast(im) enh.enhance(1.8).show("30% more contrast")
OpenCV(오픈 소스 컴퓨터 비전 라이브러리)는 컴퓨터 비전 애플리케이션에서 가장 널리 사용되는 라이브러리입니다. OpenCV-Python은 OpenCV의 Python API입니다. OpenCV-Python은 속도가 빠를 뿐만 아니라(백엔드가 C/C++로 작성된 코드로 구성되어 있기 때문에) 코딩 및 배포도 쉽습니다(프론트엔드의 Python 래퍼 덕분에). 이는 계산 집약적인 컴퓨터 비전 프로그램을 수행하는 데 탁월한 선택입니다.
사용 예: 피라미드를 사용하여 'Orapple' 기능이라는 새로운 과일을 만듭니다
SimpleCV는 컴퓨터 비전 애플리케이션 구축을 위한 오픈 소스 프레임워크이기도 합니다. 비트 깊이, 파일 형식 또는 색상 공간을 먼저 이해하지 않고도 OpenCV와 같은 고성능 컴퓨터 비전 라이브러리에 대한 액세스를 제공합니다. OpenCV보다 배우기가 훨씬 쉽고, 태그라인에 따르면 "컴퓨터 비전을 쉽게 만듭니다." SimpleCV를 선호하는 몇 가지 사항은 다음과 같습니다.
사용 예
Mahotas는 Python용 또 다른 컴퓨터 비전 및 이미지 처리 라이브러리입니다. 여기에는 전통적인 이미지 처리 기능(예: 필터링 및 형태학적 작업)뿐만 아니라 특징 계산을 위한 보다 현대적인 컴퓨터 비전 기능(관심 지점 감지 및 로컬 설명 포함)이 포함되어 있습니다. 인터페이스는 빠른 개발에 적합한 Python을 사용하지만, 알고리즘은 C++로 구현되어 속도에 최적화되어 있습니다. Mahotas 라이브러리는 빠르고 코드가 간단하며 (다른 라이브러리에 대한) 종속성이 최소화됩니다. 자세한 내용은 해당 공식 문서를 읽어보는 것이 좋습니다.
사용 예
Mahotas 라이브러리는 간단한 코드를 사용하여 작업을 완료합니다. "Finding Wally" 문제에서 Mahotas는 매우 적은 양의 코드로 훌륭한 작업을 수행했습니다.
ITK(Insight Segmentation and Registration Toolkit)는 개발자에게 이미지 분석을 위한 완전한 소프트웨어 도구 세트를 제공하는 오픈 소스 크로스 플랫폼 시스템입니다. 그중 SimpleITK는 ITK 위에 구축된 단순화된 레이어로, 신속한 프로토타이핑, 교육 및 스크립팅 언어에서의 사용을 촉진하는 것을 목표로 합니다. SimpleITK는 일반 필터링 작업, 이미지 분할 및 등록을 지원하는 많은 구성 요소가 포함된 이미지 분석 툴킷입니다. SimpleITK 자체는 C++로 작성되었지만 Python을 포함한 다양한 프로그래밍 언어에서 사용할 수 있습니다.
다음은 교육 및 연구 활동에 SimpleITK를 사용하는 방법을 보여주는 Jupyter 노트북입니다. 노트북은 Python 및 R 프로그래밍 언어를 사용하여 대화형 이미지 분석에 SimpleITK를 사용하는 방법을 보여줍니다.
사용 예
아래 애니메이션은 SimpleITK 및 Python을 사용하여 생성된 엄격한 CT/MR 등록 프로세스를 시각화한 것입니다.
pgmagick은 GraphicsMagick 라이브러리용 Python 기반 래퍼입니다. GraphicsMagick 이미지 처리 시스템은 이미지 처리 분야의 스위스 군용 칼이라고도 불립니다. DPX, GIF, JPEG, JPEG-2000, PNG, PDF, PNM 및 TIFF와 같은 중요한 형식을 포함하여 88개 이상의 주요 형식으로 이미지 읽기, 쓰기 및 조작을 지원하는 강력하고 효율적인 도구 및 라이브러리 모음을 제공합니다. .
사용 예: 이미지 크기 조정, 가장자리 추출
이미지 크기 조정
edge 추출
Pycairo는 그래픽 라이브러리 cairo를 위한 Python 바인딩 세트입니다. Cairo는 벡터 그래픽을 그리기 위한 2D 그래픽 라이브러리입니다. 벡터 그래픽은 크기를 조정하거나 변형해도 선명도를 잃지 않는다는 점에서 흥미롭습니다. Pycairo 라이브러리는 Python에서 cairo 명령을 호출할 수 있습니다.
사용법: Pycairo는 선, 기본 모양 및 방사형 그라데이션을 그릴 수 있습니다.
위는 무료이며 뛰어난 이미지 처리 Python 라이브러리입니다. 잘 알려진 것 중 일부는 이미 알고 있거나 사용해 본 적이 있을 수도 있고, 일부는 처음 접하는 것일 수도 있습니다. 그렇다면 이제 시작해서 시도해 볼 시간입니다!
위 내용은 Python의 상위 10가지 이미지 처리 도구의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!