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中利用原始套接字进行网络编程的示例
May 04 Python
Python中处理字符串的相关的len()方法的使用简介
May 19 Python
使用Python设计一个代码统计工具
Apr 04 Python
在IPython中进行Python程序执行时间的测量方法
Nov 01 Python
Python实现字典排序、按照list中字典的某个key排序的方法示例
Dec 18 Python
DataFrame:通过SparkSql将scala类转为DataFrame的方法
Jan 29 Python
python开发之anaconda以及win7下安装gensim的方法
Jul 05 Python
Python 3.8正式发布重要新功能一览
Oct 17 Python
pytorch实现特殊的Module--Sqeuential三种写法
Jan 15 Python
python使用hdfs3模块对hdfs进行操作详解
Jun 06 Python
Django日志及中间件模块应用案例
Sep 10 Python
Python数据分析库pandas高级接口dt的使用详解
Dec 11 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 Undefined index的问题
2009/06/01 PHP
php下将多个数组合并成一个数组的方法与实例代码
2011/02/03 PHP
php分页思路以及在ZF中的使用
2012/05/30 PHP
怎样使用php与jquery设置和读取cookies
2013/08/08 PHP
Twig模板引擎用法入门教程
2016/01/20 PHP
php添加数据到xml文件的简单例子
2016/09/08 PHP
HTML node相关的一些资料整理
2010/01/01 Javascript
页面调用单个swf文件,嵌套出多个方法。
2011/11/21 Javascript
利用浏览器全屏api实现js全屏
2014/01/16 Javascript
jquery live()调用不存在的解决方法
2014/02/26 Javascript
js 与 php 通过json数据进行通讯示例
2014/03/26 Javascript
Js的Array数组对象详解
2016/02/22 Javascript
js改变css样式的三种方法推荐
2016/06/28 Javascript
AngularJS中$watch和$timeout的使用示例
2016/09/20 Javascript
深入理解JS实现快速排序和去重
2016/10/17 Javascript
nodejs批量下载图片的实现方法
2017/05/19 NodeJs
vue实现留言板todolist功能
2017/08/16 Javascript
ES6 系列之 Generator 的自动执行的方法示例
2018/10/19 Javascript
js删除对象/数组中null、undefined、空对象及空数组方法示例
2018/11/14 Javascript
vue2.0项目集成Cesium的实现方法
2019/07/30 Javascript
手把手15分钟搭一个企业级脚手架
2019/09/16 Javascript
python实现目录树生成示例
2014/03/28 Python
Python进阶之递归函数的用法及其示例
2018/01/31 Python
Python实现的连接mssql数据库操作示例
2018/08/17 Python
Python 3.6 中使用pdfminer解析pdf文件的实现
2019/09/25 Python
python双端队列原理、实现与使用方法分析
2019/11/27 Python
selenium WebDriverWait类等待机制的实现
2020/03/18 Python
利用CSS3实现开门效果实例源码
2016/08/22 HTML / CSS
材料化学应届生求职信
2013/10/09 职场文书
校园新闻广播稿
2014/01/10 职场文书
旅游业大学生创业计划书
2014/01/31 职场文书
给全校老师的建议书
2014/03/13 职场文书
大学中国梦演讲稿
2014/04/23 职场文书
行政秘书工作自我鉴定
2014/09/15 职场文书
2016年秋季开学典礼新闻稿
2015/11/25 职场文书
python playwright 自动等待和断言详解
2021/11/27 Python