matplotlib을 사용하여 이미지를 회색조로 표시
matplotlib.pyplot.imshow () 사용하여 회색조 이미지를 표시하려고합니다 . 내 문제는 회색조 이미지가 컬러 맵으로 표시된다는 것입니다. 이미지 위에 색상으로 그리려면 그레이 스케일이 필요합니다.
이미지를 읽고 PIL의 Image.open (). convert ( "L")을 사용하여 회색조 로 변환
image = Image.open(file).convert("L")
그런 다음 이미지를 행렬로 변환하여 다음을 사용하여 이미지 처리를 쉽게 수행 할 수 있습니다.
matrix = scipy.misc.fromimage(image, 0)
그러나 내가 할 때
figure()
matplotlib.pyplot.imshow(matrix)
show()
컬러 맵을 사용하여 이미지를 표시합니다 (즉, 회색조가 아님).
내가 여기서 뭘 잘못하고 있니?
다음 코드는 파일에서 이미지를로드하여 image.png
회색조로 표시합니다.
import numpy as np
import matplotlib.pyplot as plt
from PIL import Image
fname = 'image.png'
image = Image.open(fname).convert("L")
arr = np.asarray(image)
plt.imshow(arr, cmap='gray', vmin=0, vmax=255)
plt.show()
역 회색조를 표시하려면 cmap을로 전환하십시오 cmap='gray_r'
.
그레이 스케일 컬러 맵을 사용 하시겠습니까?
예를 들어
imshow(..., cmap=pyplot.cm.binary)
컬러 맵 목록은 http://scipy-cookbook.readthedocs.org/items/Matplotlib_Show_colormaps.html을 참조 하십시오.
import matplotlib.pyplot as plt
코드에서 한 번만 실행할 수도 있습니다.
plt.gray()
이미지를 기본적으로 회색조로 표시합니다
im = array(Image.open('I_am_batman.jpg').convert('L'))
plt.imshow(im)
plt.show()
get_cmap 메소드를 사용합니다. 전의.:
import matplotlib.pyplot as plt
plt.imshow(matrix, cmap=plt.get_cmap('gray'))
이 시도:
import pylab
from scipy import misc
pylab.imshow(misc.lena(),cmap=pylab.gray())
pylab.show()
@unutbu의 답변은 정답에 매우 가깝습니다.
기본적으로 plt.imshow ()는 (MxN) 배열 데이터를 0.0 ~ 1.0으로 조정하려고 시도합니다. 그런 다음 0 ~ 255로 매핑하십시오. 가장 자연스럽게 촬영 된 이미지의 경우 문제가 없습니다. 그러나 픽셀 값 이미지의 범위가 좁 으면 최소 픽셀은 156이고 최대 픽셀은 234입니다. 회색 이미지는 완전히 잘못 보입니다. 이미지를 회색으로 표시하는 올바른 방법은
from matplotlib.colors import NoNorm
...
plt.imshow(img,cmap='gray',norm=NoNorm())
...
예를 보자.
이것은 defaul norm 설정을 사용하고 있습니다. 없음 : 잘못된 그림
this is using NoNorm setting,which is NoNorm(): right pic
Use no interpolation and set to gray.
import matplotlib.pyplot as plt
plt.imshow(img[:,:,1], cmap='gray',interpolation='none')
참고URL : https://stackoverflow.com/questions/3823752/display-image-as-grayscale-using-matplotlib
'IT story' 카테고리의 다른 글
모든 개발자는 데이터베이스에 대해 무엇을 알아야합니까? (0) | 2020.05.06 |
---|---|
CTOR의 의미는 무엇입니까? (0) | 2020.05.06 |
Python 멀티 프로세싱 PicklingError : 피클 할 수 없습니다 (0) | 2020.05.06 |
HTML 속성의 길이에 제한이 있습니까? (0) | 2020.05.06 |
라이브러리가로드되지 않음 : mysql2 gem으로 OS X 10.6에서 'rails server'를 실행하려고 할 때 libmysqlclient.16.dylib 오류 (0) | 2020.05.05 |