PIL 이용한 이미지처리 - 2 본문

[PL]/Python

PIL 이용한 이미지처리 - 2

객과 함께. 2007. 9. 20. 16:01
Public Image Library
자세한 사항은 PIL문서를 참조 하시길....
1. PIL 설치
	Python 번전에 맞게 다운 받아서 설치를 하면 자동 적으로
	파이썬의 모듈로 설치가 된다.
	리눅스 버전은  configure, make , make install 과정을 거
	쳐야 하지만 windows 버전은 클릭 몇번 만으로 설치가 쉽다.
2. PIL 문서예제
	EX 1) 이미지의 정보를 알수 있는 예제 이다. 
	      정보라 함은 화일의 확장자명, 임지의 크기 , 이미지의 색상
              (기본적으로 "RGB")등의 정보를 알수가 있다. 
		>>> import Image
		>>> im = Image.open("00.jpg")
		>>> print im.format, im.size , im.mode
		JPEG (1054, 757) RGB
	      * 이미지의 디렉토리에 맞게 넣어준다.
	EX 2) 이미지를 로드하여 출력 해주는 예제 이다.
		>>> import Image
		>>> im = Image.open("00.jpg")
		>>> im.show()
	EX 3) BOX크기의 이미지 생성
		>>> import Image
		>>> im = Image.open("./../00.jpg")
		>>> im.box = (100,100,400,400)
		>>> region = im.crop(im.box)
		>>> im.save("./../001.jpg")
	EX 4) BOX 크기 만큼의 이미지가 180 바뀌어 있는 예제
		>>> import Image
		>>> im = Image.open("./../00.jpg")
		>>> im.box = (100,100,400,400)
		>>> region = im.crop(im.box)
		>>> region = region.transpose(Image.ROTATE_180)
		>>> im.paste(region,im.box)
		>>> im.save("./../002.jpg")
	EX 5) 이미지의 생상의 반적 예제 (Splitting and merging bands)
		 import Image
		 im = Image.open("./../00.jpg")
		 r,g,b = im.split()
		 am = Image.merge("RGB", (b,g,r))
		 am.save("./../003.jpg")
	EX 6) 이미지의 크기 변경과 전체 이미지의 각이 생김예제
		 import Image
		 im = Image.open("./../00.jpg")
		 out = im.resize((1000,700)) # <= 이미지의 크기 재설정
		 out = im.rotate(30)         # <= 이미지의 전체 각을 지정
		 out.save("./../004.jpg")
	EX 7) Transposing an image
		 import Image
		 im = Image.open("./../00.jpg")
		 out = im.transpose(Image.FLIP_LEFT_RIGHT).save("./../050.jpg")
		# 이미지의 좌.우가 바뀜
		 out = im.transpose(Image.FLIP_TOP_BOTTOM).save("./../051.jpg")
		# 이미지의 위.아래가 바뀜
		 out = im.transpose(Image.ROTATE_90).save("./../052.jpg")
		# 이미지의 크기 축소와 90도 회전
		 out = im.transpose(Image.ROTATE_180).save("./../053.jpg")
		# 이미지가 180도 회전 
		 out = im.transpose(Image.ROTATE_270).save("./../054.jpg")
		# 이미지가 270도 회전
	EX 8) Converting between modes
		import Image
		im = Image.open("./../00.jpg").convert("L").save("./../055.jpg")
		# 이미지의 색이 흑백으로 바뀜
		im = Image.open("./../00.jpg").convert("1").save("./../057.jpg")
		# 전체 이미지에 지문과 비슷한 효과
	EX 9) Applying filters (ImageFilter )
		# 각 필터에 관한 예제
		import ImageFilter, Image
		im = Image.open("00.jpg")		
		im.filter(ImageFilter.EDGE_ENHANCE).save("033.jpg")
		im.filter(ImageFilter.EDGE_ENHANCE_MORE).save("034.jpg")
		* 위 필터 외에 필터가 더 있습니다. 자세한 것은 pil 문서
		  를 참조 하시길......
	EX 10) Applying point transforms
		import ImageFilter, Image
		im = Image.open("./../00.jpg")
		out = im.point(lambda i: i * 1.245) # <= 밝기 
		out.save("./../059.jpg")
	EX 11) Applying point transforms
		import Image
		im = Image.open("./../01.jpg")
		source = im.split()
		R, G, B = 0, 1 , 2
		mask = source[R].point(lambda i: 100 and 255)
		cut = source[G].point(lambda i: i * 0.7)
		#cut = source[B].point(lambda i: i * 0.67)
		#source[G].paste(cut, None, mask)
		source[B].paste(cut, None, mask)
		im = Image.merge(im.mode, source)
		im.save("./../039.jpg")
3. 주의 사항
	위 예제 들은 제가 문서를 보면서 작성 한 것으로 윈도우와 리눅스 7.x 버전에서 
	테스를 하였습니다.
	위 예제를 그대로 사용 하여 실행하여 생기는 문제는 책임 지지 않습니다.
	각자 문서를 보시고 직접 작성해 보시길 권합니다.
	이미지는 각자 원하는 이미지를 가지고 테스트 하시면 될듯.....

'[PL] > Python' 카테고리의 다른 글

wxpython .............  (0) 2007.10.11
PIL 이용한 이미지처리 - 3  (0) 2007.09.20
PIL 모듈을이용하여 이미지 처리  (0) 2007.09.17
연산 예제 프로그램  (0) 2007.08.27
곱셈 연산  (0) 2007.08.27