python实现两张图片的像素融合


Posted in Python onFebruary 23, 2019

本文实例为大家分享了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)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中使用pprint函数进行格式化输出的教程
Apr 07 Python
Python实现的弹球小游戏示例
Aug 01 Python
Python实现在线暴力破解邮箱账号密码功能示例【测试可用】
Sep 06 Python
python脚本实现验证码识别
Jun 07 Python
Python 比较文本相似性的方法(difflib,Levenshtein)
Oct 15 Python
Python多线程处理实例详解【单进程/多进程】
Jan 30 Python
Python 监测文件是否更新的方法
Jun 10 Python
python GUI库图形界面开发之PyQt5 UI主线程与耗时线程分离详细方法实例
Feb 26 Python
python实现将字符串中的数字提取出来然后求和
Apr 02 Python
学python需要去培训机构吗
Jul 01 Python
python opencv pytesseract 验证码识别的实现
Aug 28 Python
Pytorch 扩展Tensor维度、压缩Tensor维度的方法
Sep 09 Python
Python判断有效的数独算法示例
Feb 23 #Python
Python实现的旋转数组功能算法示例
Feb 23 #Python
Python实现求两个数组交集的方法示例
Feb 23 #Python
Python神奇的内置函数locals的实例讲解
Feb 22 #Python
Python玩转Excel的读写改实例
Feb 22 #Python
Python操作配置文件ini的三种方法讲解
Feb 22 #Python
Python使用pymongo库操作MongoDB数据库的方法实例
Feb 22 #Python
You might like
php实现计数器方法小结
2015/01/05 PHP
PHP实现的oracle分页函数实例
2016/01/25 PHP
PHP Ajax实现无刷新附件上传
2016/08/17 PHP
PHP+Apache环境中如何隐藏Apache版本
2017/11/24 PHP
PHP 实现手机端APP支付宝支付功能
2018/06/07 PHP
Ajax+Jpgraph实现的动态折线图功能示例
2019/02/11 PHP
PHP crypt()函数的用法讲解
2019/02/15 PHP
Thinkphp5框架ajax接口实现方法分析
2019/08/28 PHP
浅析onsubmit校验表单时利用ajax的return false无效问题
2013/07/10 Javascript
Jquery读取URL参数小例子
2013/08/30 Javascript
使用jquery选择器如何获取父级元素、同级元素、子元素
2014/05/14 Javascript
JS+CSS实现带关闭按钮DIV弹出窗口的方法
2015/02/27 Javascript
Seajs 简易文档 提供简单、极致的模块化开发体验
2016/04/13 Javascript
JS中用try catch对代码运行的性能影响分析
2016/12/26 Javascript
bootstrap weebox 支持ajax的模态弹出框
2017/02/23 Javascript
Vue resource中的GET与POST请求的实例代码
2017/07/21 Javascript
JS图片延迟加载插件LazyImgv1.0用法分析【附demo源码下载】
2017/09/04 Javascript
webpack3升级到webpack4遇到问题总结
2019/09/30 Javascript
Python lambda函数基本用法实例分析
2018/03/16 Python
python把数组中的数字每行打印3个并保存在文档中的方法
2018/07/17 Python
利用python实现.dcm格式图像转为.jpg格式
2020/01/13 Python
Python3 webservice接口测试代码详解
2020/06/23 Python
解决Keras中循环使用K.ctc_decode内存不释放的问题
2020/06/29 Python
HTML 5 input placeholder 属性如何完美兼任ie
2014/05/12 HTML / CSS
HTML5 拖放(Drag 和 Drop)详解与实例代码
2017/09/14 HTML / CSS
18-35岁旅游团的全球领导者:Contiki
2017/02/08 全球购物
英国户外服装、鞋类和设备的领先零售商:Millets
2020/10/12 全球购物
简述网络文件系统NFS,并说明其作用
2016/10/19 面试题
家长会主持词开场白
2014/03/18 职场文书
小学生综合素质评语
2014/04/23 职场文书
综合素质评价思想道德自我评价
2015/03/09 职场文书
2015年店长个人工作总结
2015/10/23 职场文书
优秀党员主要事迹材料
2015/11/04 职场文书
MySQL 5.7常见数据类型
2021/07/15 MySQL
MySQL数据库Innodb 引擎实现mvcc锁
2022/05/06 MySQL
使用Cargo工具高效创建Rust项目
2022/08/14 Javascript