多个图片拼接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豆瓣电影爬虫课程设计报告(详解python 模拟豆瓣登录豆瓣6.0)
- pyqt5怎么在pycharm中安装(pycharm+PyQt5+python最新开发环境配置踩坑)
- python获取微信用户(python-itchat 获取微信群用户信息的实例)
- python开启两个线程(Python开启线程,在函数中开线程的实例)
- python中dict怎么创建(Python数据类型之Dict字典实例详解)
- python如何编写定时器(python 定时器,轮询定时器的实例)
- python6个基础数据类型(计算机二级python学习教程3 python语言基本数据类型)
- python如何把字符串转换成数字(python实现字符串加密成纯数字)
- python列表反转的方法(Python实现的列表排序、反转操作示例)
- opencv提取图像轮廓python代码(Python基于opencv调用摄像头获取个人图片的实现方法)
- python一分钟认识条件判断(对python判断ip是否可达的实例详解)
- python字典的key(Python使用dict.fromkeys快速生成一个字典示例)
- pythonflask怎么设置(python flask安装和命令详解)
- python使用aes加密解密(python实现AES和RSA加解密的方法)
- python中迭代器的作用(Python3.5迭代器与生成器用法实例分析)
- 张勇 阿里新任掌门人(阿里新任掌门人)
- 毛戈平全国第一柜花落银泰 高端国货迎来 高光 时刻(毛戈平全国第一柜花落银泰)
- 14岁丧父 20岁丧母,从苦难走向辉煌的银泰创始人沈国军(14岁丧父20岁丧母从苦难走向辉煌的银泰创始人沈国军)
- 银泰集团董事长沈国军获评 北京影响力 十大企业家(银泰集团董事长沈国军获评)
- 15帅气男士发型,清爽时尚很有型,喜欢就试试(清爽时尚很有型)
- 哪几个历史人物被影协主席李雪健演的活灵活现(哪几个历史人物被影协主席李雪健演的活灵活现)
热门推荐
- mybatis为什么还用mysql(关于MyBatis连接MySql8.0版本的配置问题)
- php解压压缩包(PHP 实现文件压缩解压操作的方法)
- 移动端touch事件
- sql中把一列数据相加(SQL实现相邻两行数据的加减乘除操作)
- 详解Python locals()的陷阱(详解Python locals的陷阱)
- docker实战部署(使用docker搭建一套开发环境全家桶的详细教程)
- webapp前端能用yii2开发吗(Yii Framework框架使用PHPExcel组件的方法示例)
- idea的tomcat怎么关闭(解决Idea的tomcat启动报多个listener的错误问题)
- hadoop集群怎么配置(Hadoop3.2.0集群搭建常见注意事项)
- php框架创建控制器代码(php连接sftp的作用以及实例代码)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9