Python은 −
를 포함하여 이미지 처리를 위한 많은 라이브러리를 제공합니다.-
OpenCV − 2D 및 3D 기능 툴킷, 얼굴 및 제스처 인식, 인간-컴퓨터 상호 작용, 모바일 로봇 공학, 물체 식별 등과 같은 광범위한 영역에서 응용 프로그램과 함께 주로 실시간 컴퓨터 비전에 중점을 둔 이미지 처리 라이브러리.
-
Numpy 및 Scipy 라이브러리 − 이미지 조작 및 처리용입니다.
-
스키킷 − 이미지 처리를 위한 많은 알고리즘을 제공합니다.
-
Python 이미징 라이브러리(PIL) − 축소판 만들기, 크기 조정, 회전, 다른 파일 형식 간 변환 등과 같은 이미지에 대한 기본 작업을 수행합니다.
이 섹션에서는 파이썬에서 이미지 처리의 몇 가지 기본 사항을 볼 것입니다.
필수 라이브러리 설치
첫 번째 단계는 openCV, 베개 또는 이미지 처리에 사용하려는 기타 라이브러리를 설치하는 것입니다. pip를 사용하여 −
와 같이 필요한 라이브러리를 설치할 수 있습니다.$pip install pillow
그게 다야:이제 이미지를 가지고 놀 수 있습니다.
이미지:Open() 및 show()
먼저 파일/이미지를 열고 보여줍니다. 아래와 같이 표시하면서 이미지를 회전할 수 있습니다 -
#Import required library from PIL import Image #Open Image im = Image.open("TajMahal.jpg") #Image rotate & show im.rotate(45).show()
출력
위의 변수 im은 베개 객체입니다. 열린 이미지에 대한 일부 정보를 검색할 수 있습니다. −
>>> im <PIL.JpegImagePlugin.JpegImageFile image mode = RGB size = 1000x667 at 0x65AB990< >>> im.size (1000, 667) >>> im.format 'JPEG' >>>
이미지 변환 및 저장()
아래와 같이 이미지 형식을 한 형식에서 다른 형식으로 변경할 수 있습니다. -
>>> im.save('TajMahal.png')
이제 폴더가 표시되면 동일한 이미지가 두 가지 다른 형식으로 표시됩니다.
썸네일 크기 조정()
베개의 thumbnail() 메서드를 사용하여 이미지의 크기를 변경할 수 있습니다 -
>>> im.thumbnail ((300, 300)) >>> im.show()
이미지가 다음과 같이 변경됩니다.
회색조 이미지로 변환 - convert()
원래 컬러 이미지에서 회색조 이미지를 만들 수 있습니다.
>>> TajMahal_gray = Image.open('TajMahal.jpg').convert('L') >>> TajMahal_gray.show()
여기서 "L"은 '빛나는'을 의미합니다.
위의 예는 Python의 PIL 라이브러리에서 가져온 것입니다. 이미지 처리를 위해 open-cv, matplotlib 및 numpy와 같은 다른 라이브러리를 사용할 수 있습니다. 다음은 이미지 처리를 위해 훨씬 강력한 라이브러리를 사용하는 방법을 보여주는 몇 가지 예제 프로그램입니다.
회색조로 이미지 표시
#Import required library import cv2 import numpy as np from matplotlib import pyplot as plt im = cv2.imread('TajMahal.jpg',cv2.IMREAD_GRAYSCALE) cv2.imshow('image',im) cv2.waitKey(0) cv2.destroyAllWindows()
출력
위의 프로그램을 틱/라인으로 작성하여 이미지를 표시하는 또 다른 방법입니다.
import cv2 import numpy as np from matplotlib import pyplot as plt im = cv2.imread('TajMahal.jpg',cv2.IMREAD_GRAYSCALE) plt.imshow(im, cmap = 'gray', interpolation = 'bicubic') # to hide tick values on X and Y axis plt.xticks([]), plt.yticks([]) plt.plot([200,300,400],[100,200,300],'c', linewidth = 5) plt.show()
출력