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 相关文章推荐
利用Python2下载单张图片与爬取网页图片实例代码
Dec 25 Python
Python 字符串转换为整形和浮点类型的方法
Jul 17 Python
Python多线程原理与用法详解
Aug 20 Python
Python Django框架实现应用添加logging日志操作示例
May 17 Python
在OpenCV里使用特征匹配和单映射变换的代码详解
Oct 23 Python
python实现操作文件(文件夹)
Oct 31 Python
NumPy中的维度Axis详解
Nov 26 Python
python进程池实现的多进程文件夹copy器完整示例
Nov 27 Python
使用pyqt 实现重复打开多个相同界面
Dec 13 Python
利用pytorch实现对CIFAR-10数据集的分类
Jan 14 Python
django rest framework使用django-filter用法
Jul 15 Python
Python 数据可视化之Bokeh详解
Nov 02 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+mysql留言本源码
2009/11/11 PHP
PHP生成sitemap.xml地图函数
2013/11/13 PHP
PHP采集静态页面并把页面css,img,js保存的方法
2014/12/23 PHP
php ajax confirm 删除实例详解
2019/03/06 PHP
PHP autoload使用方法及步骤详解
2020/09/05 PHP
PHP实现爬虫爬取图片代码实例
2021/03/03 PHP
Javascript - HTML的request类
2007/01/09 Javascript
向fckeditor编辑器插入指定代码的方法
2007/05/25 Javascript
jQuery学习5 jQuery事件模型
2010/02/07 Javascript
javascript-表格排序(降序/反序)实现介绍(附图)
2013/05/30 Javascript
javascript删除数组元素并且数组长度减小的简单实例
2014/02/14 Javascript
jquery中页面Ajax方法$.load的功能使用介绍
2014/10/20 Javascript
jQuery使用CSS()方法给指定元素同时设置多个样式
2015/03/26 Javascript
js格式化输入框内金额、银行卡号
2016/02/01 Javascript
JavaScript获取css行间样式,内连样式和外链样式的简单方法
2016/07/18 Javascript
BootStrap Fileinput初始化时的一些参数
2016/12/30 Javascript
利用jQuery实现一个简单的表格上下翻页效果
2017/03/14 Javascript
react-router v4如何使用history控制路由跳转详解
2018/01/09 Javascript
简单明了区分escape、encodeURI和encodeURIComponent
2018/05/26 Javascript
Vue 框架之动态绑定 css 样式实例分析
2018/11/14 Javascript
Python中数字以及算数运算符的相关使用
2015/10/12 Python
Python入门教程之运算符与控制流
2016/08/17 Python
python线程池(threadpool)模块使用笔记详解
2017/11/17 Python
Python3生成手写体数字方法
2018/01/30 Python
基于python 处理中文路径的终极解决方法
2018/04/12 Python
python3+PyQt5使用数据库表视图
2018/04/24 Python
Python 一句话生成字母表的方法
2019/01/02 Python
keras中的backend.clip用法
2020/05/22 Python
python 图像增强算法实现详解
2021/01/24 Python
如何写好优秀的创业计划书
2014/01/30 职场文书
促销活动方案模板
2014/02/24 职场文书
学生实习证明范文
2014/09/28 职场文书
工程承包协议书
2014/10/20 职场文书
spring cloud eureka 服务启动失败的原因分析及解决方法
2022/03/17 Java/Android
Apache Hudi 加速传统的批处理模式
2022/04/24 Servers
td 内容自动换行 table表格td设置宽度后文字太多自动换行
2022/12/24 HTML / CSS