蒙太奇与OpenCV(P2)
最后一个代码块将蒙太奇显示到屏幕上:
在第38行,我们在每个蒙太奇上循环(同样,类似于在页面上显示N个(假的)“搜索结果”)。
第39行和第40行将当前蒙太奇显示在屏幕上。CV2。waitKey调用暂停脚本的执行,直到我们选择当前活动的窗口并按下键盘上的任何键。这将导致for循环前进。
一旦我们到达蒙太奇列表的末尾,脚本就会退出。
展示蒙太奇
大约两年前,我参与了一个计算机视觉项目,该项目要求我建立一个简单的图像时尚搜索引擎。为了实现这一点,我构建了一个简单的网络爬虫来爬行Nordstrom。com下载所有产品图片和相关元数据。
今天,我们将在演示build_montages函数时使用这些数据的一个小样本。
使用下面的“下载”部分下载源代码+示例图像后,可以执行以下命令查看结果:
$python montage_example.py --images nordstrom_sample
执行脚本后,您应该会看到类似于以下内容的输出:

注意:你在蒙太奇中看到的确切图像与我的不同,因为我们是从输入目录中随机抽样的。
如图1所示,我们有三行,每行包含七个图像。蒙太奇中的每个图像都已调整为128 x 196像素的固定大小。
根据布莱恩在这篇博文顶部提出的问题,这个蒙太奇可能是他的图像搜索引擎算法的搜索结果。
作为第二个示例,让我们增加--示例,这样我们就可以创建多个蒙太奇,因为所有图像都不适合三行七列格式:
$python montage_example.py --images nordstrom_sample——sample33
由于3x7=21,我们知道采样33张图像不可能适合21张图像的蒙太奇。
幸运的是,build_montages函数意识到一个蒙太奇中包含的图像太多,因此创建了两个蒙太奇。
第一个蒙太奇可以在下面看到,蒙太奇中的所有21个空间都被占用了:

第二个蒙太奇包含了第一个蒙太奇中无法容纳的剩余12幅图像:

请注意蒙太奇中的空白区域是如何被黑色像素填充的。