[Pythhon] scikit-image 기반 이미지 처리

3434 단어 scikit-imagePython

그림 파일 불러오기

In [5]: from skimage import io

In [6]: I = io.imread('lena512color.tiff')

In [7]: print I.shape
(512, 512, 3)

이미지 파일 쓰기

In [12]: io.imsave('output.bmp', I)

여러 이미지 파일 쓰기


tiff 형식에서 다음과 같이 여러 개의 이미지 파일을 파일로 저장할 수 있습니다.
In [13]: I1 = io.imread('Lenna.bmp')

In [14]: I2 = io.imread('Mandrill.bmp')

In [15]: I3 = io.imread('Parrots.bmp')

In [16]: io.imsave('output.tiff', [I1, I2, I3])

In [17]: I4 = io.imread('output.tif')

In [18]: I4.shape
Out[18]: (3, 256, 256, 3)

In [19]: io.imshow(I4[0])

In [20]: io.imshow(I4[1])

In [21]: io.imshow(I4[2])




이미지 표시

In [8]: io.imshow(I)

색상 변환


RGB → Gray

In [9]: from skimage.color import rgb2gray

In [10]: G = rgb2gray(I)

In [11]: io.imshow(G)

기타 색상 변환 참조여기.

유형 및 값 수정


유형 변환과 값 변환을 동시에 진행합니다.
값의 변환은as_flat의 경우 255~0의 값을 1.0~0.0의 값으로 변환합니다.
그냥 유형을 바꾸고 싶으면 astype을 사용하세요.
In [50]: from skimage import img_as_float, img_as_int, img_as_ubyte, img_as_uint

In [51]: I_float = img_as_float(I)

In [52]: print I_float.dtype, I_float.max(), I_float.min()
float64 1.0 0.0117647058824

In [53]: I_int   = img_as_int(I)

In [54]: print I_int.dtype, I_int.max(), I_int.min()
int16 32767 385

In [55]: I_ubyte = img_as_ubyte(I)

In [56]: print I_ubyte.dtype, I_ubyte.max(), I_ubyte.min()
uint8 255 3

In [57]: I_uint  = img_as_uint(I)

In [58]: print I_uint.dtype, I_uint.max(), I_uint.min()
uint16 65535 771

이미지 크기


scikit-image에도transform이 있습니다.resize가 있지만 변환 방식을 지정할 수 없기 때문에 scipy의imresize를 사용합니다.
In [79]: from skimage import io

In [80]: import numpy as np

In [81]: from scipy.misc import imresize

In [82]: I = io.imread('Lenna.bmp')

In [83]: IN = imresize(I,(I.shape[0]*2, I.shape[1]*2), interp='nearest')

In [84]: IB = imresize(I,(I.shape[0]*2, I.shape[1]*2), interp='bilinear')

In [85]: IC = imresize(I,(I.shape[0]*2, I.shape[1]*2), interp='bicubic')

In [86]: io.imshow(np.hstack((IN[200:264,200:264], IB[200:264,200:264], IC[200:264,200:264])))

좋은 웹페이지 즐겨찾기