반응형
PIL을 사용하여 픽셀의 RGB 제공
PIL을 사용하여 픽셀의 RGB 색상을 사용할 수 있습니까? 이 코드를 사용하고 있습니다.
im = Image.open("image.gif")
pix = im.load()
print(pix[1,1])
그러나 3 개의 숫자 (예 : R, G, B)가 아닌 숫자 (예 : 0
또는 1
) 만 출력합니다 60,60,60
. 기능에 대해 이해하지 못하는 것입니다. 나는 약간의 설명을 좋아한다.
감사합니다.
예, 이렇게 :
im = Image.open('image.gif')
rgb_im = im.convert('RGB')
r, g, b = rgb_im.getpixel((1, 1))
print(r, g, b)
(65, 100, 137)
이전에를 사용하여 단일 값을 얻은 이유 pix[1, 1]
는 GIF 픽셀이 GIF 색상의 256 개 값을 참조하기 때문입니다.
이 SO 게시물을 참조하십시오 : GIF 및 JPEG에 대해 다른 Python 및 PIL 픽셀 값 및이 PIL 참조 페이지 에는 convert()
함수 에 대한 자세한 정보가 포함되어 있습니다 .
그건 그렇고, 당신의 코드는 .jpg
이미지에 대해 잘 작동 합니다.
GIF는 색상을 사용할 수있는 x 개의 색상 중 하나로 저장합니다. gif 제한 색상
에 대한 설명 . PIL은 색상의 색상 정보가 아닌 색인을 제공합니다.편집 : 오타가있는 블로그 게시물 솔루션에 대한 링크를 제거했습니다. 다른 답변은 오타없이 동일한 작업을 수행합니다.
PIL은 여전히 흥미로울 수 있습니다.imageio.imread
import imageio
im = scipy.misc.imread('um_000000.png', flatten=False, mode='RGB')
im = imageio.imread('Figure_1.png', pilmode='RGB')
print(im.shape)
준다
(480, 640, 3)
그래서 (높이, 너비, 채널)입니다. 따라서 위치의 픽셀 (x, y)
은
color = tuple(im[y][x])
r, g, b = color
시대에 뒤쳐진
scipy.misc.imread
한다 1.0.0 SciPy에서 사용하지 않는 (감사 알림 에 대한 fbahr !)
이미지 변환에 대한 대안은 현장에서 RGB 강화를 만드는 것입니다.
from PIL import Image
def chunk(seq, size, groupByList=True):
"""Returns list of lists/tuples broken up by size input"""
func = tuple
if groupByList:
func = list
return [func(seq[i:i + size]) for i in range(0, len(seq), size)]
def getPaletteInRgb(img):
"""
Returns list of RGB tuples found in the image palette
:type img: Image.Image
:rtype: list[tuple]
"""
assert img.mode == 'P', "image should be palette mode"
pal = img.getpalette()
colors = chunk(pal, 3, False)
return colors
# Usage
im = Image.open("image.gif")
pal = getPalletteInRgb(im)
참고 URL : https://stackoverflow.com/questions/11064786/get-pixels-rgb-using-pil
반응형
'ProgramingTip' 카테고리의 다른 글
"기본"크기의 50 %로 이미지 표시 (0) | 2020.10.12 |
---|---|
Javascript JSON 배열 구문 분석 방법 (0) | 2020.10.12 |
C #의 memset에 해당하는 것은 무엇입니까? (0) | 2020.10.11 |
HTML : 텍스트에서 특정 단어의 색상 변경 (0) | 2020.10.11 |
ab가 apr_socket_recv로 오류가 발생했습니다 : 연결이 거부되었습니다. (61). (0) | 2020.10.11 |