Spring, 2019 School of CSE Pusan National University Image 파일 다루기 Spring, 2019 School of CSE Pusan National University
학습목표 학습목표 Python의 Pillow 모듈을 사용하여 이미지를 조작하는 다양한 프로그래밍을 익힌다.
Python의 PIL(Python Image Library) 모듈 Python의 media 모듈 Python의 PIL(Python Image Library) 모듈 설치하기 pip install pillow 를 윈도우 cmd 창 에서 입력하여 PIL 모듈을 다운로드 받는다.
이미지 열기 아래의 명령어를 실행합니다. >>> from PIL import Image >>> im = Image.open(“filename.jpg”) >>> im.show()
이미지 처리 사진 정보 구하기 사진 자르기 사진에 글자 삽입하기 이미지 처리 >>> im. width() 500 >>> im. height() 375 사진 자르기 >>> box = (20, 20, 100, 100) >>> im = im.crop(box) >>> im.show() >>> im.save_as('pic207cropped.jpg' ) 사진에 글자 삽입하기 >>> from PIL import Image, ImageFont, ImgeDraw >>> im = Image.open(“images.jpg) >>> font = ImageFont.truetype(“abel-regular.ttf”, 16) >>> draw = ImageDraw.Draw(im) >>> draw.text((0,0), “Sample Text”, (0,0,0), font = font)
칼라 흑백 변환 칼라 흑백 변환 칼라 사진을 흑백 사진으로 바꾸기 그림 파일의 각 픽셀을 대상으로 빨강, 초록, 파랑 값의 평균을 계산한 후 빨강, 초록, 파랑 값을 앞에서 구한 평균값으로 설정하면 된다. >>> from PIL import Image >>> im = Image.open(“images.jpg”) >>> for i in range(im.height): for j in range(im.width): p = list(im.getpixel((j, i))) grey = (p[0] + p[1] + p[2]) // 3 p[0], p[1], p[2] = (grey, grey, grey) p = tuple(p) im.putpixel((j, i), p) >>> im.show(pic)
그림 겹치기 그림에 그림 삽입하기 그림 겹치기 한 그림에 새로운 그림 삽입하기 두 개의 그림 파일을 사용한다. from PIL import Image im1 = Image.open(‘image1.jpg’ ) im2 = Image.open(‘image2.jpg' ) width, height = im2.width, im2.height for y in range(0, height): for x in range(0, width): from_p = im2.getpixel((x, y)) to_p = im1.putpixel((10 + x, 10 + y), from_p) im1.show()
기타 다양한 예제 두 번 보여주기 색상 조정 사용자가 선택한 그림 파일을 두 번 보여주는 프로그램 from PIL import Image im = Image.open(“image.jpg”) im.show() 색상 조정 사용자가 선택한 그림 파일에서 각 픽셀의 초록 값을 반으로 줄인 후 보여주는 프로그램 for y in range(im.height): for x in range(im.width): p = list(im.getpixel(x, y)) p[2] = p[2] // 2 im.putpixel((x, y), tuple(p))
연습문제 정사각형으로 구성된 모자이크 필터를 구현하여라 문제를 단순화하기 위해 각 정사각형의 너비를 10픽셀이라고 가정한다 정사각형의 색은 내부 100 픽셀의 평균치다 두 색의 평균은 다음과 같이 계산한다 red = (red_1 + red_2)/2 green = (green_1 + green_2)/2 blue = (blue_1 + blue_2)/2 사용되는 그림 파일은 임의로 선정하여 사용하라
요약 Python에서 사용할 수 있는 다양한 모듈 중에서 image 모듈을 사용하는 방법을 익혔다. 칼라 흑백 변환, 그림 겹치기, 그리고 그림 색상 조정 등 컴퓨터에서 그림 파일을 조작하는 방법을 학습하였다.