蒙太奇图片代码+说明(小白专用,三分钟内完成

**
本文提供的代码转自https://blog.csdn.net/weixin_44857688/article/details/107772751
,只对代码做使用说明,小白专用,大佬勿进。
傻瓜式蒙太奇图片处理,只要按着操作做一定不会出现问题。
三分钟内完成


'''
蒙太奇拼图
'''
'''
程序移植说明:
1在d盘建立mtq文件夹
2在文件夹中分别新建picuture和save文件夹
3将需要转换的主图直接放入d:/mtq目录下,并命名为1.jpg
4将组成蒙太奇大图的小图放入picture文件夹下
5运行此程序
注:运行环境py3.8+opencv2'''
import cv2 as cv
import osn = 1# 预处理填充图片
def before_handle_imgs():print("正在预处理填充图片:")readPath = "d:/mtq/picture/"savePath = "d:/mtq/save/"files = os.listdir(readPath)for file in files:imgPath = readPath + "\\" + fileimg = cv.imread(imgPath)img = cv.resize(img, (160, 90))cv.imwrite(savePath + "\\" + file, img)print("预处理填充图片已完成!")# 预处理待填充图片
def before_handle_img():print("正在预处理待填充图片:")width, height = 25600*n, 14400*nreadPath = "d:/mtq/1.jpg"savePath = "d:/mtq/2.jpg"img = cv.imread(readPath)img = cv.resize(img, (width, height))cv.imwrite(savePath, img)print("预处理待填充图片已完成!")# 用字典存储每一图及其直方图
def build_index():print("正在计算各图片直方图:")readPath = "d:/mtq/save/"files = os.listdir(readPath)dist = {}for file in files:imgPath = readPath + "\\" + fileimg = cv.imread(imgPath)hist = []for i in range(3):ht = cv.calcHist([img], [i], None, [256], [0, 256])hist.append(ht)dist[file] = histprint("各图片直方图计算已完成!")return dist# 用最相近的图代替原图
def match_replace(dist):print("正在替换图片:")width, height = 25600 * n, 14400 * nimage = cv.imread("d:/mtq/2.jpg")for i in range(0, height, 90):for j in range(0, width, 160):img = image[i:i+90, j:j+160, 0:3]hist = []for k in range(3):ht = cv.calcHist([img], [k], None, [256], [0, 256])hist.append(ht)sim = 0.0for key in dist:match0 = cv.compareHist(hist[0], dist[key][0], cv.HISTCMP_CORREL)match1 = cv.compareHist(hist[1], dist[key][1], cv.HISTCMP_CORREL)match2 = cv.compareHist(hist[2], dist[key][2], cv.HISTCMP_CORREL)match = match0 + match1 + match2if match > sim:sim = matchrename = keyimage[i:i+90, j:j+160, 0:3] = cv.imread("d:/mtq/save/" + rename)cv.imwrite("d:/mtq/3.jpg", image)print("图片替换已完成!")# 混合图片
def mix_image():print("正在融合图片:")image1 = cv.imread("d:/mtq/3.jpg")image2 = cv.imread("d:/mtq/2.jpg")dst = cv.addWeighted(image1, 0.2, image2, 0.8, 3)cv.imwrite("d:/mtq/4.jpg", dst)print("图片融合已完成!")if __name__ == "__main__":before_handle_imgs()before_handle_img()dist = build_index()match_replace(dist)mix_image()

蒙太奇图片代码+说明(*小白专用,三分钟内完成*)相关推荐

  1. Android怎么禁用底部键,在三分钟内完全禁用并隐藏Android设备底部的虚拟按钮(适用于测试)...

    Android设备屏幕的底部通常有一个虚拟导航栏,带有诸如后退和主页之类的按钮. 尽管android系统的许多版本现在都提供了暂时隐藏底部导航栏的功能,但对于某些需要完全禁用虚拟按钮的应用程序而言,暂 ...

  2. 如何在开源社区贡献代码_如何在15分钟内从浏览器获得您的第一个开源贡献

    如何在开源社区贡献代码 Matt Mullenweg, founder of Automattic, recently offered this advice to aspiring develope ...

  3. 步步为营 .NET 代码重构学习笔记 三、内联方法(Inline Method)

    一.Inline  Method 概述 一个函数,其本体(method body)应该与其名称(method name)同样清楚易懂. 动机(Motivation) 以简短的函数表现动作意图,这样会使 ...

  4. AI设计 | 如何让零基础小白在3分钟内利用AI人工智能设计Logo?

    作为一个缺乏基础知识的初学者,你或许会认为Logo设计很难.但是,AI人工智能这个神奇的工具可以帮助你轻松地设计出自己的Logo,让整个过程变得愉快且简单.只要按照我的步骤并跟随我,你可以成为一位杰出 ...

  5. 势如破竹!ZOS首日上线三分钟内涨幅超过30%

    继比特币比萨节后,原本喧嚣币圈随着比特币在8000美金来回震荡之中回归价值理性思考,5月23日,主流货币持续震荡阴跌,潜力币种如ZOS,却势如破竹,稳定冲击交易榜首,给币圈牛市的开启打下了一针强心剂. ...

  6. 虚拟服务器万兆网卡怎么用,万兆网卡三分钟,教你成为英特尔网卡专家

    万兆网卡三分钟,教你成为英特尔网卡专家 作为全球最知名的网络设备供应商,英特尔网卡对IT业人士来说可谓家喻户晓.提起英特尔网卡大家都有许多话要说,而议论最多的就是英特尔网卡的系列和型号,我们在这里简单 ...

  7. 电脑PHP动画制作画板,三分钟HTML5画布(Canvas)动画教程

    此文下面的教程中将使用的是另外一个叫做kinetic的Web动画工具包. 它们都是开源的. 把鼠标放到上面的小丑脸上,然后移开,就会有如下效果. 第一步,画五官 这个小丑没有耳朵和眉毛,所以只剩下三官 ...

  8. 手机三分钟调出INS最火青橙色调

    青橙色调在ins上是很受欢迎的,虽然现在都烂大街了,感觉到平平无奇. 但是这种配色很适合夏日风光,以及带有天空,水元素之类的图片,今天就用三分钟的时间,妥妥教会你. 一分钟下软件 我们今天要使用的软件 ...

  9. 三分钟了解JVM的垃圾回收和三色标记

    今天,我争取用三分钟,说清楚JVM中的垃圾回收和三色标记,倒计时,开始. 什么是垃圾 垃圾的定义 垃圾,在我们日常生活中,就是使用过后不再需要的东西.并且随着时间的推移,你产生的垃圾会越来越多.怎么清 ...

最新文章

  1. UI培训教程之系统图标如何设计?
  2. 如何设置Winform控件的ClientRectangle
  3. [AH2017/HNOI2017]礼物
  4. GCD - Extreme(欧拉函数变形)
  5. zynq阅读文档之通过中断读GPIO输入的编程指导
  6. android遥控器用什么测试,Android编程调用红外线遥控功能示例
  7. 大数据分析有几种方法
  8. Promise 的 9 个提示
  9. Android【报错】xxx cannot be resolved to a type 错误解决方法
  10. .Net Core Linux centos7行—.net core json 配置文件
  11. Spring3.0_调试错误集
  12. Mac OS开启黑暗模式
  13. 盘点微信的前世今生,微信成功的必然和偶然
  14. ArcGIS Engine开发的汉化小技巧-来自arcchen和记忆De残骸
  15. 程序员薪酬高达 462 万元:是怎么回事?
  16. 2020年2月26日训练日记
  17. 实时监控一个区块链某地址的实现方案
  18. 计算机一个远程控制用户怎么回事,电脑不能被远程控制怎么办
  19. 最新《微专业Android安卓开发工程师课程》
  20. FITC/TRITC/ICG/CY3/CY5/CY7/CY7.5荧光标记的Chondroitin-Sulfate硫酸软骨素、多糖、蛋白、多肽、氨基酸、药物、抗体

热门文章

  1. 基于stm32单片机体重秤电子秤超重提醒
  2. jquery.media.js 插件实现在线预览PDF文件
  3. DCCI发布Q1外卖报告 美团外卖市场份额持续增长至64.6%
  4. 【沁恒WCH CH32V307V-R1的单线半双工模式串口通讯】
  5. 一文读懂:2022年小微企业如何享受增值税留抵退税政策
  6. 计算机动画制作初步视频,计算机动画制作初步
  7. Python要如何实现列表排序的几种方法
  8. python 爬虫 贪婪算法和非贪婪算法 match()
  9. gitlib怎么将远程仓库同步到本地
  10. 年休假、婚丧假、产假、病假、事假分别有多少天?你必须懂!