2013-11-01 4 views
1

numpy scikit 이미지 라이브러리를 사용하여 이미지를로드하여 ndarray로 쉽게 표시 할 수 있습니다. 그러나, 나는 이미지 주위에 커서를 움직일 수있는 일종의 디스플레이를 원하고, 현재 픽셀의 인덱스와 회색 (또는 RGB) 값을 봅니다. 예 : (213,47 : 178) 또는 (213,47 : 122,10,205) - 물론이 값은 커서가 움직일 때마다 지속적으로 변합니다.Python : 이미지 디스플레이의 픽셀 값은?

쉬운 방법이 있나요? 오 : 저는 리눅스를 사용하고 있지만 학생들은 Windows를 사용하게 될 것이므로 크로스 플랫폼 솔루션을 기대하고 있습니다.

+0

가능한 복제본 [matplotlib Figure 창 (imshow 포함)에서 마우스의 표시된 위치를 제거하거나 숨기거나 재정의하는 방법은 무엇입니까?] (http://stackoverflow.com/questions/14349289/in-a) -matplotlib-figure-window-with-imshow-how-can-i-remove-hide-or-redefine) – tacaswell

+1

이것은'matplotlib'과 함께하기 쉽습니다. 링크 된 질문과 api 예제 http : // matplotlib를보십시오. org/examples/api/image_zcoord.html – tacaswell

답변

1

표시 용으로는 tkinter을, 이미지 종류에는 PIL을 사용하고 있습니다. 그것은 느린 해결책입니다.

def pil2tkinter_image(img_path, master = None, *args, **kw): 
    import tkinter, PIL.Image 
    img = PIL.Image.open(img_path) 
    x0, y0, width, height = img.getbbox() 
    l = [] 
    for y in range(y0, height): 
     l.append('{') 
     for x in range(x0, width): 
      l.append('#%02X%02X%02X' % img.getpixel((x, y))[:3]) 
     l.append('}') 
    data = ' '.join(l) # slow part 
    pi = tkinter.PhotoImage(master = master, *args, **kw) 
    pi.put(data, (0,0)) 
    return pi 

함수 pil2tkinter_image 어떤 종류, PNG, BMP, JPG, GIF 이미지에 대한 경로를 취하고 그것을 밖으로의 Tkinter 광 화상을 생성한다.

이 이미지를 tkinter 위젯에 삽입하고 마우스 이벤트를 사용하여 픽셀 값을 읽을 수 있습니다.

관련 문제