没有合适的资源?快使用搜索试试~ 我知道了~
首页Python+OpenCV实现图像融合的原理及代码
资源详情
资源评论
资源推荐

Python+OpenCV实现图像融合的原理及代码实现图像融合的原理及代码
主要介绍了Python+OpenCV实现图像融合的原理及代码,本文通过实例代码给大家介绍的非常详细,具有一定的
参考借鉴价值,需要的朋友可以参考下
根据导师作业安排,在学习数字图像处理(刚萨雷斯版)第六章 彩色图像处理 中的彩色模型后,导师安排了一个比较有趣的
作业:
融合原理为:融合原理为:
1 注意:遥感原RGB图image和灰度图Grayimage为测试用的输入图像;
2 步骤:(1)将RGB转换为HSV空间(H:色调,S:饱和度,V:明度);
(2)用Gray图像诶换掉HSV中的V;
(3)替换后的HSV转换回RGB空间即可得到结果。
书上只介绍了HSI彩色模型,并没有说到HSV,所以需要网上查找资料。
Python代码如下:
import cv2
import numpy as np
import math
from matplotlib import pyplot as plt
def caijian(img):#裁剪图像与否根据选择图像大小而定,调用了OpenCV函数
weight=img.shape[0]
height=img.shape[1]
print(“图像大小为:%d*%d”%(weight,height))
img=cv2.resize(img,(int(weight/2),int(height/2)),interpolation=cv2.INTER_CUBIC)
return(img)
def graytograyimg(img):
grayimg=img1
weight=img.shape[0]
height=img.shape[1]
for i in range(weight):
for j in range(height):
grayimg[i,j]=0.299img[i,j,0]+0.587img[i,j,1]+0.114img[i,j,2]
return(grayimg)
def RGBtoHSV(img):
b,g,r=cv2.split(img)
rows,cols=b.shape
H=np.ones([rows,cols],“float”)
S=np.ones([rows,cols],“float”)
V=np.ones([rows,cols],“float”)
print(“RGB图像大小:%d*%d”%(rows,cols))
for i in range(0, rows):
for j in range(0, cols):
MAX=max((b[i,j],g[i,j],r[i,j]))
MIN=min((b[i,j],g[i,j],r[i,j]))
V[i,j]=MAX
if V[i,j]0:
S[i,j]=0
else:
S[i,j]=(V[i,j]-MIN)/V[i,j]
if MAXMIN:
H[i,j]=0 # 如果rgb三向量相同,色调为黑















安全验证
文档复制为VIP权益,开通VIP直接复制

评论1