728x90
1. numpy.vstack
numpy.vstack(tup)
: Stack arrays in sequence vertically (rowwise)
- axis 0로 ndarray들을 붙임
- 2d image라면 위아래로 붙여지게 됨.
Simple example
import numpy as np
a = np.ones((4,3))
b = np.zeros((4,3))
np.vstack( (a,b) )
Image example
import cv2
import matplotlib.pyplot as plt
img = cv2.imread('../../images/lena.png')
stacked_img = np.vstack((img,img))
plt.imshow(stacked_img[:,:,::-1])
plt.show()
결과는 다음과 같음.
2. numpy.hstack
numpy.hstack(tup)
: Stack arrays in sequence horizontally (column wise).
- axis 1로 ndarray들을 붙임
- 2d image라면 왼쪽으로 붙여지게 됨.
Simple example
import numpy as np
a = np.ones((4,3))
b = np.zeros((4,3))
np.hstack( (a,b) )
Image example
import cv2
import matplotlib.pyplot as plt
img = cv2.imread('../../images/lena.png')
stacked_img = np.hstack((img,img))
plt.imshow(stacked_img[:,:,::-1])
plt.show()
결과는 다음과 같음.
3. numpy.concatenate
numpy.concatenate((a1, a2, ...), axis=0, out=None, dtype=None, casting="same_kind")
:
Join a sequence of arrays along an existing axis.
- 위의
vstack
,hstack
을 대체할 수 있는 함수. - ndarray가 가지고 있는 기존의 axis(축)으로 병합을 수행함.
Simple example
import numpy as np
a = np.ones((4,3))
b = np.zeros((4,3))
print(np.concatenate( (a,b), axis=0 ))
print(np.concatenate( (a,b), axis=0 ))
Image example
import cv2
import matplotlib.pyplot as plt
img = cv2.imread('../../images/lena.png')
stacked_img = np.concatenate((img,img), axis=1)
plt.imshow(stacked_img[:,:,::-1])
plt.show()
결과는 다음과 같음.
4. numpy.stack
numpy.stack(arrays, axis=0, out=None)
:
Join a sequence of arrays along a new axis.
- 위의
vstack
,hstack
,concatenate
가 기존의 axis중 하나로 병합하는 것과 달리 새로운 축을 추가하여 병합. - ndarray에 새로운 axis(축)으로 병합을 수행함.
axis
파라메터에 지정한 축의 위치에 새로운 축이 추가되고 해당 축에 병합될 array들이 순서대로 요소에 할당됨.
Simple example
import numpy as np
a = np.ones((4,3))
b = np.zeros((4,3))
c = np.stack( (a,b), axis=1) # c.sahpe =(4,2,3)
c[:,0,:]
은 기존의a
와 같음.c[:,1,:]
은 기존의b
와 같음
Image example
import cv2
import matplotlib.pyplot as plt
img = cv2.imread('../../images/lena.png')
stacked_img = np.stack((img,img), axis=0)
plt.imshow(stacked_img[0,:,:,::-1])
plt.show()
- 2개의 lena이미지가 axis 0에 각각 index=0, index=1인 요소에 할당됨.
- 이미지 출력은
stacke_image[0]
임. ( opencv가 BGR모드에 대한 처리를 하기 위해 풀어서 기재)
결과는 다음과 같음.
반응형
'Programming > DIP' 카테고리의 다른 글
PIL과 opencv에서의 image 변환. (1) | 2021.11.22 |
---|---|
Conda backup for DIP 2021 (0) | 2021.09.18 |
NumPy : sum, mean, std, and so on (0) | 2021.09.17 |
NumPy 검색 (0) | 2021.09.11 |
NumPy 배열 나누기: 영상 자르기 (0) | 2021.09.11 |