나는 두 이미지를 결합하는이 링크를 대해 참조하고, 두 이미지가 RGB는 형식의되고있는 경우는 작동opencv에서 RGB 이미지와 회색 이미지를 결합하는 방법은 무엇입니까?
Combining Two Images with OpenCV
문제는 RGB 이미지는 세 가지입니다 때문에, 회색 이미지와 RGB 이미지를 결합하는 방법입니다 회색 이미지는 2 차원입니다.
나는 두 이미지를 결합하는이 링크를 대해 참조하고, 두 이미지가 RGB는 형식의되고있는 경우는 작동opencv에서 RGB 이미지와 회색 이미지를 결합하는 방법은 무엇입니까?
Combining Two Images with OpenCV
문제는 RGB 이미지는 세 가지입니다 때문에, 회색 이미지와 RGB 이미지를 결합하는 방법입니다 회색 이미지는 2 차원입니다.
RGB 이미지는 3 차원이지만 회색 명암 이미지는 2 차원입니다. 조합을 가능하게하려면 그레이 스케일 이미지에 하나의 치수를 추가해야합니다. x
이 2 차원 배열 x
인 경우이를 3 차원 배열로 변환하는 가장 간단한 방법은 x[:, :, None]
입니다. 또는 NumPy의 atleast_3D
을 사용할 수도 있습니다.
아래의 코드는 NumPy와와 scikit 이미지 라이브러리를 사용하여 일을 가져옵니다
import numpy as np
from skimage import io
rgb = io.imread('https://i.stack.imgur.com/R6X5p.jpg')
gray = io.imread('https://i.stack.imgur.com/f27t5.png')
rows_rgb, cols_rgb, channels = rgb.shape
rows_gray, cols_gray = gray.shape
rows_comb = max(rows_rgb, rows_gray)
cols_comb = cols_rgb + cols_gray
comb = np.zeros(shape=(rows_comb, cols_comb, channels), dtype=np.uint8)
comb[:rows_rgb, :cols_rgb] = rgb
comb[:rows_gray, cols_rgb:] = gray[:, :, None]
io.imshow(comb)
그것은 예를 들어 위의 두 이미지 유형 np.uint8
의 있다고 가정하는 것이 중요하다. 그렇지 않은 경우 적절한 유형 변환을 사용해야합니다.
그러면 결과는 4 열의 3D 배열이됩니까? – Divakar
imgcol = cv2.cvtColor (img, cv2.COLOR_GRAY2BGR)로 그레이 스케일 이미지를 RGB로 변환 할 수 있습니까 (이미지는 회색이지만 구조적으로는 rgb가됩니다) 또는 피하려고하는 것입니까? – Soltius
@ Divakar, 3 columns –