1
정확한 22 가지 색상 (각 RGB 값이 서로 다른 이미지) (.tiff 또는 geotiff 파일)을 22 개의 개별 이미지로 분리 ("필터링")하는 방법은 무엇입니까? 각각 특정 RGB 값을 가진 픽셀 만 포함하고 있습니까?PIL? 주어진 RGB 값의 모든 픽셀을 추출하십시오.
정확한 22 가지 색상 (각 RGB 값이 서로 다른 이미지) (.tiff 또는 geotiff 파일)을 22 개의 개별 이미지로 분리 ("필터링")하는 방법은 무엇입니까? 각각 특정 RGB 값을 가진 픽셀 만 포함하고 있습니까?PIL? 주어진 RGB 값의 모든 픽셀을 추출하십시오.
이미지의 색상 수에 관계없이 픽셀 단위로 작업 할 수 있습니다 (많은 색상과 큰 이미지에서 느려질 수 있음). 또한 paletted 이미지 (그것은 그들을 변환) 작동합니다.
import Image
def color_separator(im):
if im.getpalette():
im = im.convert('RGB')
colors = im.getcolors()
width, height = im.size
colors_dict = dict((val[1],Image.new('RGB', (width, height), (0,0,0)))
for val in colors)
pix = im.load()
for i in xrange(width):
for j in xrange(height):
colors_dict[pix[i,j]].putpixel((i,j), pix[i,j])
return colors_dict
im = Image.open("colorwheel.tiff")
colors_dict = color_separator(im)
#show the images:
colors_dict.popitem()[1].show()
colors_dict.popitem()[1].show()
im.getcolors()
반환 이미지의 모든 색상의 목록과 발생 횟수를 호출하고, 기본값 ~ 256).colors_dict
을 만듭니다.load()
을 사용합니다.color_separator()
은 이미지의 모든 고유 한 색으로 키잉 된 이미지 사전을 반환합니다. 은 빨리 당신이 colors_dict
의 모든 이미지 load()
를 사용할 수 있도록하려면,하지만 이미지가 많은 색상을 가지고 큰 경우는 메모리를 많이 소모 할 수 있기 때문에 당신은 조금 조심해야 할 수 있습니다. 이없는 경우의 문제는 (colors_dict
작성 후) 추가
fast_colors = dict((key, value.load()) for key, value in colors_dict.items())
스왑 :
colors_dict[pix[j,i]].putpixel((j,i), pix[j,i])
님
fast_colors[pix[j,i]][j,i] = pix[j,i]
22 컬러 화상 :
을22 색 격리 된 이미지 :
(210)그래서
, 어떻게 당신이 결합하는 것 (22 개) 이미지, 말, 노란색과 붉은 색의 약간 ? 또는 적어도 22 이미지 중 일부 이미지를 새 이미지에 붙여 넣을 수 있도록 이미지에 검정색이 나타나지 않았습니까? – klocey