Created
March 8, 2021 12:17
-
-
Save yokeshrana/eab2a8fa1ac3af78c6b0ea430811df69 to your computer and use it in GitHub Desktop.
Stacking images in one window
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
""" | |
Join Images | |
We will try to put all images in one window | |
""" | |
import cv2 | |
import numpy as np | |
#Function used to stack the images | |
def stackImages(scale, imgArray): | |
rows = len(imgArray) | |
cols = len(imgArray[0]) | |
rowsAvailable = isinstance(imgArray[0], list) | |
width = imgArray[0][0].shape[1] | |
height = imgArray[0][0].shape[0] | |
if rowsAvailable: | |
for x in range(0, rows): | |
for y in range(0, cols): | |
if imgArray[x][y].shape[:2] == imgArray[0][0].shape[:2]: | |
imgArray[x][y] = cv2.resize(imgArray[x][y], (0, 0), None, scale, scale) | |
else: | |
imgArray[x][y] = cv2.resize(imgArray[x][y], (imgArray[0][0].shape[1], imgArray[0][0].shape[0]), | |
None, scale, scale) | |
if len(imgArray[x][y].shape) == 2: imgArray[x][y] = cv2.cvtColor(imgArray[x][y], cv2.COLOR_GRAY2BGR) | |
imageBlank = np.zeros((height, width, 3), np.uint8) | |
hor = [imageBlank] * rows | |
hor_con = [imageBlank] * rows | |
for x in range(0, rows): | |
hor[x] = np.hstack(imgArray[x]) | |
ver = np.vstack(hor) | |
else: | |
for x in range(0, rows): | |
if imgArray[x].shape[:2] == imgArray[0].shape[:2]: | |
imgArray[x] = cv2.resize(imgArray[x], (0, 0), None, scale, scale) | |
else: | |
imgArray[x] = cv2.resize(imgArray[x], (imgArray[0].shape[1], imgArray[0].shape[0]), None, scale, | |
scale) | |
if len(imgArray[x].shape) == 2: imgArray[x] = cv2.cvtColor(imgArray[x], cv2.COLOR_GRAY2BGR) | |
hor = np.hstack(imgArray) | |
ver = hor | |
return ver | |
img = cv2.imread("Resources/lena.png") | |
imgGray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) | |
imgStack = stackImages(0.5, ([img, imgGray, img], [img, img, img])) | |
imgHor = np.hstack((img,img)) # horizontally stacking the images | |
imgVer = np.vstack((img,img)) # vertically stacking the images | |
#cv2.imshow("Horizontal",imgHor) | |
#cv2.imshow("Vertical",imgVer) | |
cv2.imshow("ImageStack", imgStack) | |
cv2.waitKey(0) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment