python - np.hstack 和 np.vstack 未运行
问题描述
我想合并三个图像。
img = cv2.imread('Lenna_(test_image).png', 0)
dim = (256, 256)
resizedLena = cv2.resize(img, dim, interpolation = cv2.INTER_LINEAR)
Y
是被修改的图像img
并且X
是被修改的另一个图像img
但等于img
现在,我想结合img, Y, X
这个命令
newIMG = np.vstack((resizedLena, Y))
outputIMG = np.vstack((newIMG, X))
cv2.imshow('return IMG', outputIMG)
cv2.waitKey(0)
cv2.destroyAllWindows()
结果:
- 1° 图像是我的输出;
- 2°图像是
img
- 3°图像是
Y
- 4°图像是
X
感谢任何帮助我的人
解决方案
对于不同尺寸的图像,您可以使用numpy
. 然后您可以创建水平组合图像。
您需要确定索引。
例如:
- 如果第一张图片从
0:h1, 0:w1
- 第二张图片从
0:h1, w1:w1 + w2
- 第三张图片从
0:h1, w1 + w2:w1 + w2 + w3
- 第四张图片从
0:h1, w1 + w2 + w3:w1 + w2 + w3 + w4
结果将是:
代码:
from cv2 import imread, imshow, waitKey
from cv2 import IMREAD_GRAYSCALE, imwrite
from numpy import zeros
img1 = imread("1.png", IMREAD_GRAYSCALE)
img2 = imread("2.png", IMREAD_GRAYSCALE)
img3 = imread("3.png", IMREAD_GRAYSCALE)
img4 = imread("4.png", IMREAD_GRAYSCALE)
(h1, w1) = img1.shape[:2]
(h2, w2) = img2.shape[:2]
(h3, w3) = img3.shape[:2]
(h4, w4) = img4.shape[:2]
out = zeros((h1, w1 + w2 + w3 + w4), dtype="uint8")
out[0:h1, 0:w1] = img1
out[0:h1, w1:w1 + w2] = img2
out[0:h1, w1 + w2:w1 + w2 + w3] = img3
out[0:h1, w1 + w2 + w3:w1 + w2 + w3 + w4] = img4
imwrite("out.png", out)
imshow("out", out)
waitKey(0)
推荐阅读
- gitahead - 如何使用 GitAhead 在提交消息中搜索数字(例如年份)?
- swift - 在修饰符 .addingTimeInterval 中捕获剩余时间
- php - notify_url 在贝宝中有多个项目
- javascript - JS:解释 currying 与多参数的用法
- python - 未来N步切片数据框——tensorflow
- python - 使用 python 的 MineSweeper 地图创建者
- python - 在管理面板 Django 中定义十进制格式
- android - 解析数据库中的 ParseUser.getList()
- kubernetes - 如何删除使用滚动重启创建的 pod?
- javascript - 排序功能仅在第二次更改事件后激活