«   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-2. Image Processing with Numpy 본문

Numpy

1-2. Image Processing with Numpy

아이스티샷추가L 2022. 12. 22. 17:19

두 번째 Numpy 글입니다.

다시 한번 더 말씀드리지만 이 글은 지난 학기에 교수님께서 강의시간에 내주신 과제를 복기하는 글입니다.

그러면 가보자구욧!

 

1. 200x200의 행렬을 만든 후 좌, 우, 위, 아래가 각각 10씩 줄어들며 색이 바뀌어 입력되는 결과를 만들어라!

 

1-1. Code Ex

import numpy as np
import matplotlib.pyplot as plt
img = np.zeros((200,200))
for a in range(0,9):
    img[10*a:(200-10*a),10*a:(200-10*a)]=a%2
plt.imshow(img,'gray')
plt.show()

 

1-2. 실행 이미지

위 코드 실행 결과

 

 

 

2. 200x200의 행렬을 만든 후 크기 40x40의 사각형이 대각선으로 출력되도록 만들어라!

 

2-1. Code Ex

import numpy as np
import matplotlib.pyplot as plt
img = np.zeros((200,200))
for a in range(0,200,40):
    img[a:a+40,a:a+40]=255
plt.imshow(img,'gray')
plt.show()

만약 이 for문이 이해가 안 간다! 하시면 밑에 코드를 사용하고 다시 for문을 보시면 이해가 될 겁니다!!

(저도 과제 제출할 때는 밑에 코드로 냈는데 이번에 다시 해보면서 for문을 이용해서 풀게 됐습니다.)

import numpy as np
import matplotlib.pyplot as plt
img = np.zeros((200,200))
img[0:40,0:40]=255
img[40:80,40:80]=255
img[80:120,80:120]=255
img[120:160,120:160]=255
img[160:200,160:200]=255
plt.imshow(img,'gray')
plt.show()

 

2-2. 실행 이미지

위 코드 실행 이미지

 

 

 

3. 200x200의 행렬을 만든 후 100px을 반지름으로 하는 원의 내부를 0으로 채워 만들어라!

    조건 : np.meshgrid를 사용할 것!

 

3-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)
circle = (X-100)**2+(Y-100)**2
img = np.where(circle>10000,0,1)
plt.imshow(img,'gray')
plt.show()

np.where은 조건, x, y(선택할 값)이다. 위 코드를 예시로 들어 circle>10000은 조건이고 0,1은 선택할 값이다.

 

3-2. 실행 이미지

 

 

 

오늘은 여기서 마치도록 하겠습니다!

다음 글에서 또 만나요~~!

 

 

Ps. 지난 학기에 처음 배우기도 했고 아직은 미숙하므로 완벽하게 numpy만을 사용해서 코딩을 하지 못합니다.

이 글을 보시는 분은 감안하고 봐주시면 감사하겠습니다.

'Numpy' 카테고리의 다른 글

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