Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- graphene-django
- for loop
- allauth
- SQL
- flask
- numpy
- FastAPI
- array
- Django-allauth
- check_password
- python
- tkinter Radio 동적버튼
- Django
- GraphQL
Archives
- Today
- Total
객
PIL 이용한 이미지처리 - 2 본문
Public Image Library
자세한 사항은 PIL문서를 참조 하시길....
자세한 사항은 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 |