使用OpenCV和Imutils构建图像的蒙太奇效果
生活随笔
收集整理的這篇文章主要介紹了
使用OpenCV和Imutils构建图像的蒙太奇效果
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
使用OpenCV和Imutils包構建圖像的蒙太奇效果
- 1. 效果圖
- 2. 原理
- 3. 源代碼
- 參考
這篇博客將演示如何使用OpenCV和Python構建蒙太奇,以可視化一系列圖像。
1. 效果圖
montages = build_montages(images, (110, 140), (5, 3))
如下圖設置蒙太奇圖像 5行3列,每張小圖寬度110像素,高度140像素;總共35張圖,故生成3個蒙版圖,第3張圖像只有5張圖像.
2. 原理
構建蒙太奇的方法:
montages = build_montages(images, (110, 140), (5, 3))
表示,構建每張圖片110*140像素,5行3列的蒙太奇圖像組
1)入參
- images:圖像列表;
- 元組1:圖像大小;
- 元組2:蒙太奇shape
2)返回值
- 以Numpy數組格式返回蒙太奇圖像列表;如果圖像中有更多圖像,則額外圖像創建新的蒙太奇。重復此過程,直到所有圖像已被添加到蒙太奇,缺失的填充黑色像素;
當樣本圖像數據量多于蒙太奇每張圖像需要的個數時,會迭代生成多個蒙太奇圖像,最后一張蒙太奇圖像不足的圖用黑色像素填充;
3. 源代碼
# 構建蒙太奇效果
# USAGE
# python montage_example.py --images E:\personal\images --sample 35# 導入必要的包
from imutils import build_montages
from imutils import paths
import argparse
import random
import cv2# 構建命令行參數及解析
# --images 必須,構建蒙太奇的原始圖像路徑
# --sample 可選,指定要示例的樣本圖像個數,默認21
ap = argparse.ArgumentParser()
ap.add_argument("-i", "--images", required=True,help="path to input directory of images")
ap.add_argument("-s", "--sample", type=int, default=21,help="# of images to sample")
args = vars(ap.parse_args())# 獲取圖像路徑,然后隨機獲取一組示例
imagePaths = list(paths.list_images(args["images"]))
# 隨機洗牌
random.shuffle(imagePaths)
imagePaths = imagePaths[:args["sample"]]# 初始化圖像列表
images = []
# 遍歷圖像路徑
for imagePath in imagePaths:# 加載圖像,更新圖像列表image = cv2.imread(imagePath)images.append(image)
# 構建蒙太奇效果,每張圖片110*140像素,5行3列
# 入參images:圖像列表; 元組1:圖像大小; 元組2:蒙太奇shape
# 返回值:以Numpy數組格式返回蒙太奇圖像列表;如果圖像中有更多圖像,則額外圖像創建新的蒙太奇。重復此過程,直到所有圖像已被添加到蒙太奇,缺失的填充黑色像素;
montages = build_montages(images, (110, 140), (5, 3))# 遍歷蒙太奇組圖像,并展示
for i, montage in enumerate(montages):cv2.imshow("Montage" + str(i), montage)cv2.waitKey(0)
參考
- https://www.pyimagesearch.com/2017/05/29/montages-with-opencv/
總結
以上是生活随笔為你收集整理的使用OpenCV和Imutils构建图像的蒙太奇效果的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用OpenCV和Python计算图像的
- 下一篇: 使用Python,OpenCV进行图像哈