2017-03-02 1 views
0

나는 tensorflow로 작업 중이며 Cifar-10에서 자동 인코딩의 입/출력을 시각화하려고합니다.어떻게 날카로운 이미지를 생성합니까 Cifar-10

내가 여기에이 대답을 다음 해요 : 여기

Why CIFAR-10 images are not displayed properly using matplotlib?는 약간의 수정과 함께 자신의 코드를 실행 한 결과입니다 (5, 5로 figsize 변경) :

Visualized Images

그러나, 이것이 원본 페이지의 이미지만큼 선명하고 선명하지 않은 위치 : https://www.cs.toronto.edu/~kriz/cifar.html

어떻게하면 더 좋게 할 수 있습니까?

문제 1 :

그것은 (빨강, 녹색, 파랑)을 혼합하여 색상 채널과 같은

답변

0

여기에 두 가지 문제가있을 수 있습니다. 그것은 왜 색이 이상한지를 설명 할 것입니다. 이 경우 아래와 같이 배열의 색상 채널을 바꿔야합니다.

# swapped color channels (R, B, G) 
rgb_image = rgb_image[:, :, [0, 2, 1]] 
plt.figure() 
plt.imshow(rgb_image) 
plt.axis('off') 

natural color

import numpy as np 
import matplotlib.pyplot as plt 
from matplotlib.cbook import get_sample_data 

rgb_image = plt.imread(get_sample_data("grace_hopper.png", asfileobj=False)) 

# correct color channels (R, G, B) 
plt.figure() 
plt.imshow(rgb_image) 
plt.axis('off') 

swapped color channels

문제 2 :

하기 matplotlib의 plt.imshowNone 기본값으로 지정되지 않은 경우 키워드 인수 interpolation 있습니다. 그런 다음 Matplotlib은 로컬 스타일 시트를 참조하여 기본 보간 동작을 결정합니다. 스타일 시트에 따라 보간이 적용될 수 있으므로 이미지가 왜곡 될 수 있습니다. documentation for imshow for more details을 참조하십시오.

Matplotlib이 이미지를 보간하지 않도록하려면 에 interpolation="none"을 지정해야합니다. 기본 없음 유형 값 None이 문자열 값 "none"과 다른 동작을하기 때문에 혼란 스럽습니다.

red = np.zeros((100, 100, 3), dtype=np.uint8) 
red[:, :, 0] = 255 
red[40:60, 40:60, :] = 255 

# with interpolation 
plt.figure() 
plt.imshow(red, interpolation='bicubic') 
plt.axis('off') 

with interpolation

# without interpolation 
plt.figure() 
plt.imshow(red, interpolation='none') 
plt.axis('off') 
하기 matplotlib 2.0

without interpolation

+1

기본 보간'image.interpolation '으로 변경되었습니다 :'nearest'' –

관련 문제