python實現(xiàn)兩張圖片的像素融合
本文實例為大家分享了python實現(xiàn)兩張圖片像素融合的具體代碼,供大家參考,具體內(nèi)容如下
通過計算兩張圖片的顏色直方圖特征,利用直方圖對圖片的顏色進行融合。
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)
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
利用Pycharm將python文件打包為exe文件的超詳細教程(附帶設(shè)置文件圖標)
在日常使用pycharm寫好程序后,如何將程序打包為exe文件呢,下面這篇文章主要給大家介紹了關(guān)于利用Pycharm將python文件打包為exe文件的超詳細教程,附帶設(shè)置文件圖標,需要的朋友可以參考下2022-08-08
Python中使用Opencv開發(fā)停車位計數(shù)器功能
這篇文章主要介紹了Python中使用Opencv開發(fā)停車位計數(shù)器,本教程最好的一點就是我們將使用基本的圖像處理技術(shù)來解決這個問題,沒有使用機器學習、深度學習進行訓練來識別,感興趣的朋友跟隨小編一起看看吧2022-04-04
python實現(xiàn)批量獲取指定文件夾下的所有文件的廠商信息
這篇文章主要介紹了python實現(xiàn)批量獲取指定文件夾下的所有文件的廠商信息的方法,是非常實用的技巧,涉及到文件的讀寫與字典的操作等技巧,需要的朋友可以參考下2014-09-09
使用Python爬取小姐姐圖片(beautifulsoup法)
這篇文章主要介紹了Python爬取小姐姐圖片(beautifulsoup法),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-02-02
numpy中的transpose函數(shù)中具體使用方法
本文主要介紹了numpy中的transpose函數(shù)中具體使用方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-02-02
Django-simple-captcha驗證碼包使用方法詳解
這篇文章主要介紹了Django-simple-captcha驗證碼包使用方法詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-11-11
Python數(shù)據(jù)結(jié)構(gòu)之棧詳解
棧和隊列是在程序設(shè)計中常見的數(shù)據(jù)類型,從數(shù)據(jù)結(jié)構(gòu)的角度來講,棧和隊列也是線性表,是操作受限的線性表。本文將詳細介紹一下Python中的棧,感興趣的可以了解一下2022-03-03
Pytorch的torch.nn.embedding()如何實現(xiàn)詞嵌入層
這篇文章主要介紹了Pytorch的torch.nn.embedding()如何實現(xiàn)詞嵌入層問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-02-02

