2014-11-13 4 views
-3

저는 이미지 프로세싱 프로젝트에 관여하고 있으며 파이썬을 사용합니다. 나는 파이썬에 익숙하지 않으므로 제 지식이 부족합니다. jpeg 이미지를 읽고 싶다면 r,g,b으로 분할하십시오. 그럼 각 픽셀 r,g,b 별도로 값을 변경해야합니다. 마지막으로, 그 중 3 개를 병합하여 새로운 이미지를 만들고 저장해야합니다.파이썬에서 jpeg 이미지의 픽셀 값을 액세스/편집하십시오.

from PIL import Image 
im = Image.open("/home/pi/desktop/codes/lena.jpg") 
im.show() 

r,g,b =im.split() 

r,g,b 픽셀 값을 포함하는 행렬입니까? 픽셀의 값을 직접 변경할 수 있습니까? 어떤 픽셀로 각 픽셀에 액세스하는 방법을 알려주십시오.

+0

PIL 모듈은 표준 Python 배포의 일부가 아니기 때문에 명시 적으로 언급해야합니다. 당신의 r, g, b가 모두리스트 객체라면, 다른 파이썬리스트 연산과 마찬가지로'r []','g []','b []'를 사용하여 픽셀 값에 접근 할 수 있습니다. 당신은 인덱스를'[]'안에 넣는다. – ha9u63ar

답변

0

먼저 split 이미지를 개별 밴드로 만듭니다.

그런 다음 point을 사용하여 원하는대로 각 픽셀을 조작하십시오.

그런 다음 merge을 사용하여 세 개의 밴드를 병합하십시오.

split 방법 튜플을

Image.split()
분할 대역들로 각각의 이미지를 리턴한다. 이 메서드는 이미지에서 개별 이미지 밴드 의 튜플을 반환합니다. 예를 들어, "RGB"이미지를 분할하면 원본 대역 (빨강, 초록, 파랑) 중 하나의 사본을 각각 포함하는 세 개의 새 이미지가 생성됩니다.

+0

고맙습니다. 이 분할 함수가 개별 밴드를 행렬로 반환합니까? 그리고 "포인트"사용법을 알려 주실 수 있습니까? 매우 도움이 될 예제 코드를 제공 할 수 있다면. –

관련 문제