«   2024/07   »
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 31
Recent Posts
Today
Total
관리 메뉴

Hwan's Private_cafe

1-3. Image Processing with Numpy 본문

Numpy

1-3. Image Processing with Numpy

아이스티샷추가L 2022. 12. 28. 16:39

세 번째 넘파이 글입니다.

이번 글부터 본격적으로 이미지를 불러오고 변환을 할 것입니다.

그러면 가보자구요~

 

1. 200x200의 img를 만든 후, (0,120), (140,0), (150,199)의 교점으로 직선 3개 구한다.

내부를 흰색으로 채워 출력해라! 단, np.meshgrid를 사용할 것!!

 

1-1. Code Ex

import numpy as np
import matplotlib.pyplot as plt
img = np.zeros((200,200))
x = np.arange(200)
y = np.arange(200)
X,Y = np.meshgrid(x,y)
a = np.array([0,120])
b = np.array([140,0])
c = np.array([150,199])
inc1 = (b[1]-a[1])/(b[0]-a[0])
inc2 = (c[1]-a[1])/(c[0]-a[0])
inc3 = (c[1]-b[1])/(c[0]-b[0])
for i in range(0,200):
    for j in range(0,200):
        str1 = (inc1*(x[i]-a[0])) - (y[j]-a[1])
        str2 = (inc2*(x[i]-a[0])) - (y[j]-a[1])
        str3 = (inc3*(x[i]-b[0])) - (y[j]-b[1])
        if (str1<0 and str2>0 and str3<0):
            img[i,j] = 1
        else:
            img[i,j] = 0
plt.imshow(img,'gray')
plt.title("Triangle")
plt.show()

for문을 사용하고 싶지 않았지만.. 아직은 미숙하기 때문에....

좌표들을 직선의 방정식을 이용해 이은뒤 삼각형이 되었다.

직선의 방정식은 검색해서 찾아보시면 되겠습니다. (직선의 방정식을 설명하면 블로그가 길어져요...)

 

1-2. 실행 이미지

직선의 방정식

 

 

 

2. 그림판을 이용해 800x600으로 자신의 이름을 적은 이미지를 불어와라.

 

2-1. Code Ex

import numpy as np
import matplotlib.pyplot as plt
from PIL import Image
path = 'name.png'
img = Image.open(path).convert("L")
plt.imshow(img,'gray')
plt.show()

이미지를 불러오는 코드는 쉽습니다. 그리고 여러가지가 있는데 저는 pillow 라이브러리를 사용해서 불러왔습니다.

 

2-2. 실행 이미지

 

 

3. 읽어들인 이름이미지에서 검은색으로 표시된 픽셀수를 카운트 해라.

 

3-1. Codr Ex

import numpy as np
import matplotlib.pyplot as plt
from PIL import Image
x = np.arange(800)
y = np.arange(600)
path = 'name.png'
img = Image.open(path).convert("L")
img_arr = np.array(img)
X,Y = np.meshgrid(x,y)
X=0
img_arr = img_arr - X
a=np.count_nonzero(img_arr)
b=(480000-a)
print(b)

갑자기 나온 480,000이라는 숫자는 800x600의 사이즈입니다.

 

3-2. 실행 이미지

name 이미지의 픽셀 수

 

 

 

여기까지 기본적인 이미지 불러오기 를 했구요 .

다음글에서는 이미지 색변환, 3차원변환을..? 할거같아요.

'Numpy' 카테고리의 다른 글

1-2. Image Processing with Numpy  (0) 2022.12.22
1-1. Image Processing with Numpy  (0) 2022.12.22
Comments