PIL을 사용하여 픽셀의 RGB 가져오기
PIL로 픽셀의 RGB 색상을 얻을 수 있습니까?이 코드를 사용하고 있습니다.
im = Image.open("image.gif")
pix = im.load()
print(pix[1,1])
그러나 숫자(예: 숫자)만 출력).0
아니면1
3개의 숫자가 아닌 경우(예:60,60,60
R,G,B)의 경우.제가 그 기능에 대해 뭔가를 이해하지 못하고 있는 것 같습니다.설명이 필요합니다.
정말 감사해요.
예, 이쪽입니다.
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 Reference 페이지에는 다음에 대한 더 많은 정보가 포함되어 있습니다.convert()
기능.
그건 그렇고, 당신의 코드는 잘 작동할 것입니다..jpg
이미지들.
numpy 포함:
im = Image.open('image.gif')
im_matrix = np.array(im)
print(im_matrix[0][0])
픽셀 위치의 RGB 벡터 제공 (0,0)
GIF는 색상을 팔레트에 가능한 x개의 색상 중 하나로 저장합니다.gif 리미티드 컬러 팔레트에 대해 읽어보세요.그래서 PIL은 팔레트 색상의 색상 정보가 아닌 팔레트 인덱스를 알려주고 있습니다.
편집: 오타가 있었던 블로그 게시물 솔루션에 대한 링크를 제거했습니다.오타 없이도 다른 대답들도 같은 일을 합니다.
이미지를 변환하는 대안은 팔레트에서 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)
PIL은 아니지만 그래도 흥미로울 수 있습니다.
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
SciPy 1.0.0에서 더 이상 사용되지 않습니다. (알려주셔서 감사합니다, fbahr!)
언급URL : https://stackoverflow.com/questions/11064786/get-pixels-rgb-using-pil
'bestsource' 카테고리의 다른 글
jquery 특정 양식에서 모든 입력 받기 (0) | 2023.10.26 |
---|---|
PDO - FETCH_CLASS - 결과를 매개 변수로 생성자에게 전달 (0) | 2023.10.26 |
mysql은 각 일에 대해 두 날짜/시간 사이의 초를 계산합니다. (0) | 2023.10.26 |
선택한 오라클 업데이트 쿼리 (0) | 2023.10.26 |
WooCommerce | Variable Product | 값당 Attribute X(out Y)에 동일한 이미지 할당 (0) | 2023.10.21 |