반응형
올리베티 데이터 셋을 활용한 간단한 모핑(morphing)¶
- 모핑(Morphing)은 하나의 형체가 전혀 다른 이미지로 변화하는 기법이다. 즉 두 개의 서로 다른 이미지나 3차원 모델 사이의 변화하는 과정을 서서히 나타내는 것을 모핑이라 한다. 특수 효과 전문회사 ILM(Industrial Light and Magic)이 개발한 기법이다. 모핑은 변형(metamorphosis)이란 단어에서 유래되었다. [출처 : 위키백과]
In [1]:
#예시 데이터 불러오기
from sklearn.datasets import fetch_olivetti_faces
import matplotlib.pyplot as plt
faces = fetch_olivetti_faces()
image6 = faces.images[6]
image6.shape
plt.imshow(image6, cmap='gray')
Out[1]:
<matplotlib.image.AxesImage at 0x7fdda9720df0>
In [2]:
image10 = faces.images[10]
plt.imshow(image10, cmap='gray')
Out[2]:
<matplotlib.image.AxesImage at 0x7fdda8823790>
- 두개의 얼굴 이미지 각각의 픽셀 값을 반으로 나눠서 합치면 image10 에서 image6으로 변화하는 과정의 중간 결과물 볼수 있습니다.
In [3]:
w = 0.5
plt.imshow((w*image10) + (w*image6) , cmap='gray')
Out[3]:
<matplotlib.image.AxesImage at 0x7fdda87993d0>
- w 값을 1에서 0.1 까지 줄이면서, image10 에는 1-w 를 image6 에는 w 를 곱해 가면 두 이미지를 합치면 image10 에서 image6으로 변경되어 가는 것을 볼 수 있습니다.
In [4]:
w_list = [1, 0.9, 0.8, 0.7, 0.6, 0.5, 0.4, 0.3, 0.2, 0.1]
f, ax = plt.subplots(1, 10, figsize=(15,15))
for n, w in enumerate(w_list):
ax[n].imshow((1-w) * image10 + w * image6 , cmap=plt.cm.bone)
ax[n].grid(False)
ax[n].set_xticks([])
ax[n].set_yticks([])
ax[n].set_title("w =" + str(w))
plt.show()
반응형
'python' 카테고리의 다른 글
아이리스 데이터 피어슨 상관분석 (0) | 2023.07.27 |
---|---|
파이썬으로 rgb값을 색상표 만들기 (0) | 2023.07.25 |
matplotlib grayscale / imshow grayscale (0) | 2023.07.24 |
mysql 설치 및 초기 셋팅 (우분투) (2) | 2023.07.23 |
파이썬 txt 파일 내용 추가하기 (0) | 2023.07.23 |
댓글