Screen coordinate

  • Each pixel: red, blue, green, alpha
  • red, blue, green -> int (0..255)
  • alpha -> 투명도 -> int (0..255)
  • bottom, left -> (0,0)
  • top, right -> (width-1,height-1)

Read image

1
2
3
4
%matplotlib inline
from skimage import novice
picture = novice.open(<url>)
picture

Read sample image

아나콘다에서 예제 파일 제공해줌 그걸 확인해보쟈

1
2
from skimage import data
print(data.data_dir)

import data 하면 data_dir이라는게 만들어지고 그 경로는 anaconda 안에 생김

C:\Users\elmo\Anaconda3\lib\site-packages\skimage\data

1
2
coffee = novice.open(data.data_dir + "/coffee.png")
coffee

그 디렉토리 안에 있는 coffee.png를 읽어오라

크기 확인

1
2
3
4
5
6
7
8
>>> coffee.width
600
>>> coffee.height
400
>>> coffee.size
(600, 400)
>>> coffe.format
'png'


Image processing

크기 변경

1
2
coffee.size = (100,50)
coffee.size

(100,50)


색보정

1
2
3
4
coffee = novice.open(data.data_dir + "/coffee.png")
for p in coffee :
    p.red = 255
coffee

사진이 갱장히 뻘개짐

투명도 조절

1
2
3
4
coffee = novice.open(data.data_dir + "/coffee.png")
for p in coffee:
    p.alpha = 120
coffee


Accessing selected points: indexing

1
2
3
4
5
coffee = novice.open(data.data_dir + "/coffee.png")
for y in range(100):
    for x in range(100):
        coffee[x+100,y+100].alpha = 120
coffee


왼쪽은 빨강색이 많이 나오게 오른쪽은 파랑색이 많이 나오게

1
2
3
4
5
6
7
8
9
coffee = novice.open(data.data_dir + "/coffee.png")
for y in range(coffee.height):
    for x in range(coffee.width//2):
        p = coffee[x,y]
        coffee[x,y] = (255,p.green,p.blue)
    for x in range(coffee.width // 2):
        p = coffee[x + coffee.width // 2,y]
        coffee [x + coffee.width // 2,y] = (p.red,p.green,255)
coffee