多个图片拼接python实现(python实现两张图片的像素融合)
类别:脚本大全 浏览量:649
时间:2022-01-24 00:56:38 多个图片拼接python实现
python实现两张图片的像素融合本文实例为大家分享了python实现两张图片像素融合的具体代码,供大家参考,具体内容如下
通过计算两张图片的颜色直方图特征,利用直方图对图片的颜色进行融合。
|
import numpy as np import cv2 from PIL import Image,ExifTags def calcMeanAndVariance(img): row = img.shape[ 0 ] col = img.shape[ 1 ] #channel=img.shape[2] total = row * col print (row,col,total) mean = np.zeros(( 3 )) variance = np.zeros(( 3 )) sum = np.zeros(( 3 )) for i in range (row): for j in range (col): sum [ 0 ] + = img[i][j][ 0 ] sum [ 1 ] + = img[i][j][ 1 ] sum [ 2 ] + = img[i][j][ 2 ] mean[ 0 ] = sum [ 0 ] / total mean[ 1 ] = sum [ 1 ] / total mean[ 2 ] = sum [ 2 ] / total sum = np.zeros(( 3 )) for i in range (row): for j in range (col): sum [ 0 ] = np.square(img[i][j][ 0 ] - mean[ 0 ]) sum [ 1 ] = np.square(img[i][j][ 1 ] - mean[ 1 ]) sum [ 2 ] = np.square(img[i][j][ 2 ] - mean[ 2 ]) variance[ 0 ] = np.sqrt( sum [ 0 ] / total) variance[ 1 ] = np.sqrt( sum [ 1 ] / total) variance[ 2 ] = np.sqrt( sum [ 2 ] / total) print (mean,variance) return mean,variance def cololTransit(img1,img2): image1 = cv2.cvtColor(img1, cv2.COLOR_BGR2LAB) image2 = cv2.cvtColor(img2, cv2.COLOR_BGR2LAB) mean1,variance1 = calcMeanAndVariance(image1) mean2,variance2 = calcMeanAndVariance(image2) #print (mean1,variance1) radio = np.zeros(( 3 )) radio[ 0 ] = variance2[ 0 ] / variance1[ 0 ] radio[ 1 ] = variance2[ 1 ] / variance1[ 1 ] radio[ 2 ] = variance2[ 2 ] / variance1[ 2 ] print ( 'test' , radio) row = image1.shape[ 0 ] col = image1.shape[ 1 ] for i in range (row): for j in range (col): image1[i][j][ 0 ] = min ( 255 , max ( 0 ,radio[ 0 ] * (image1[i][j][ 0 ] - mean1[ 0 ]) + mean2[ 0 ])) image1[i][j][ 1 ] = min ( 255 , max ( 0 ,radio[ 1 ] * (image1[i][j][ 1 ] - mean1[ 1 ]) + mean2[ 1 ])) image1[i][j][ 2 ] = min ( 255 , max ( 0 ,radio[ 2 ] * (image1[i][j][ 2 ] - mean1[ 2 ]) + mean2[ 2 ])) image = cv2.cvtColor(image1, cv2.COLOR_BGR2LAB) return image if __name__ = = '__main__' : img1 = cv2.imread( '1.jpg' ) img2 = cv2.imread( '2.jpg' ) cv2.namedWindow( 'src' ) cv2.namedWindow( 'dst' ) #cv2.resizeWindow('src',500,500) #cv2.resizeWindow('dst',500,500) cv2.imshow( 'src' ,img1) cv2.imshow( 'dst' ,img2) cv2.waitKey() cv2.destroyAllWindows() img = cololTransit(img1,img2) cv2.namedWindow( 'result' ) cv2.imshow( 'result' ,img) cv2.waitKey() cv2.destroyAllWindows() #print (img) |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持开心学习网。
原文链接:https://blog.csdn.net/weixin_38582851/article/details/80494205
您可能感兴趣
- python 取出时间段日志(python 实现提取某个索引中某个时间段的数据方法)
- python使用django搭建简单网页(Python后台开发Django的教程详解启动)
- python接口自动化接口依赖(python接口自动化十六--参数关联接口后传详解)
- python怎么在csv修改数据(python 编写输出到csv的操作)
- python 正则表达式菜鸟教程(详解Python正则表达式re模块)
- python拖动选择文件操作(python通过paramiko复制远程文件及文件目录到本地)
- python语言案例教程单元测试(Python单元和文档测试实例详解)
- pythonflask编写接口(Python Flask框架模板操作实例分析)
- python中lambda函数是什么意思(python ---lambda匿名函数介绍)
- python如何对参数长度进行限制(python 多个参数不为空校验方法)
- python制作彩色字符(Python3利用print输出带颜色的彩色字体示例代码)
- python冒泡排序代码通俗理解(详解python算法之冒泡排序)
- python strip用法(Python3.5内置模块之shelve模块、xml模块、configparser模块、hashlib、hmac模块用法分析)
- python中if条件语句如何使用(Python中如何使用if语句处理列表实例代码)
- python常见知识点整理(Python基础知识点 初识Python.md)
- python线程池如何实现同步(Python mutiprocessing多线程池pool操作示例)
- 你只要花上20天记单词,英语成绩就能从57提到100(你只要花上20天记单词)
- 夕云天际飞,亢龙化太极(夕云天际飞亢龙化太极)
- 爱情可以当饭吃吗(怎么回复)
- 高考数学题(高考数学题基础题占多少分)
- 没钱只能吃土(没钱要吃土了幽默短信发朋友圈)
- 今年考高会很难吗(今年高考会考试吗)
热门推荐
- mysql数据类型和使用方法(MySQL数据类型全解析)
- ASP.NET如何获取上传图片的宽和高
- 宝塔面板程序目录(将宝塔面板linux版装在/www以外的目录的方法)
- 数据库备份时需要注意的事情
- ASP.NET将WORD、PDF、PPT转为图片
- 阿里云服务ecs操作系统(阿里云ECS服务器CentOS7上安装服务器安全狗Linux版)
- javascript变量值做函数名(JavaScript中变量提升和函数提升实例详解)
- 如何看idea连接mysql数据库(IDEA 链接Mysql数据库并执行查询操作的完整代码)
- 最全js面试题(JavaScript必看的10道面试题总结推荐)
- serv-u设置文件夹权限(serv_U 域离线 解决方法)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9