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

Numpy

1-1. Image Processing with Numpy

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

제가 지난 학기에 배운 영상처리개론의 과제들과 수업을 복습하려고 적는 글입니다.

python의 numpy와 matplotlib를 사용해서 이미지 변환을 배웠습니다.

numpy는 파이썬의 프로그램 연산시간 단축을 위해 사용한다라고 배웠습니다.

성적은 So So 하지만 그래도 복습해야지 하는 생각으로 글을 적습니다.

가보자구욧~!!

 

1. numpy 함수

 - 과제할 때 주로 사용했던 함수들

Code 내용
import numpy as np numpy 라이브러리 호출
import matplotlib.pyplot as plt matplotlib 라이브러리 호출
from PIL import Image PILLOW 이미지 라이브러리 호출
np.zeros() 0으로 이루어진 빈 배열 생성
np.full() full_values로 가득찬 배열 생성
np.array() 배열 생성 
np.arange() 주어진 값을 일정한 간격으로 사이 값 반환
np.vstack() 배열을 수직으로 붙임
np.hstack() 배열을 수평으로 붙임
np.where() 배열 속에서 조건에 맞는 값을 반환
np.meshgrid() 좌표 벡터에서 좌표 행렬을 반환
Image.open() 이미지 불러오기(pillow 함수)
plt.imshow() 데이터를 이미지로 반환
plt.show figure를 호출

 

 

 

이제 과제 시작합니다.

2. 5x5 크기를 같는 empty, full 변수 선언 후 empty에는 0을 full에는 255를 채운다.

    5x5그림을 10x10 크기의 행렬을 만듭니다. 그리고 위에 만든 그림을 수평으로 붙여나가 10x200크기의 행렬을 만들어라!

 

2-1. Code Ex

import numpy as np
import matplotlib.pyplot as plt 
empty = np.zeros((5,5))
full = np.full((5,5),255)
a = np.hstack((empty,full))
b = np.hstack((full,empty))
img1 = np.vstack((a,b))
img2 = np.hstack(((img1,img1))*10)

plt.subplot(2,1,1)
plt.imshow(img1)
plt.title('5x5')
plt.subplot(2,1,2)
plt.imshow(img2)
plt.title('10x200')
plt.show()

변수 empty에 np.zeros를 사용해서 0으로 구성된 배열을 만들고 변수 full에 np.full를 사용해서 255으로 구성된 배열을 만듦. 

np.hstack을 이용해 만들어진 배열을 수직으로 붙임.

 

2-2. 실행 이미지

위 코드 실행 결과

 

 

 

3. 위에 만든 img2(10x10)을 이용해 200x200의 그림을 for문 이용하여 만들어라!

 

3-1. Code Ex

import numpy as np
import matplotlib.pyplot as plt 
empty = np.zeros((5,5))
full = np.full((5,5),255)
a = np.hstack((empty,full))
b = np.hstack((full,empty))
img1 = np.vstack((a,b))
img2 = np.hstack(((img1,img1))*10)
img3 = np.vstack((img2,img2))
for a in range(0,18):
    img3 = np.vstack((img3,img2))
plt.imshow(img3)
plt.title('200x200')
plt.show()

이미 만들어진 배열들을 for문으로 19번 반복하여 수직으로 붙여지도록 만듦.

 

3-2. 실행 이미지

위 코드 실행 결과

 

이 글을 마치도록 하겠습니다!!

 

 

 

 

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

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

 

'Numpy' 카테고리의 다른 글

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