激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Python+OpenCV實現圖像融合的原理及代碼

Python+OpenCV實現圖像融合的原理及代碼

2021-04-24 00:49~沐春風~ Python

這篇文章主要介紹了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代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
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三向量相同,色調為黑
elif v[i,j]==r[i,j]:
h[i,j]=(60*(float(g[i,j])-b[i,j])/(v[i,j]-min))
elif v[i,j]==g[i,j]:
h[i,j]=60*(float(b[i,j])-r[i,j])/(v[i,j]-min)+120
elif v[i,j]==b[i,j]:
h[i,j]=60*(float(r[i,j])-g[i,j])/(v[i,j]-min)+240
if h[i,j]<0:
h[i,j]=h[i,j]+360
h[i,j]=h[i,j]/2
s[i,j]=255*s[i,j]
result=cv2.merge((h,s,v)) # cv2.merge函數是合并單通道成多通道
result=np.uint8(result)
return(result)
def graytohsgry(grayimg,hsvimg):
h,s,v=cv2.split(hsvimg)
rows,cols=v.shape
for i in range(rows):
for j in range(cols):
v[i,j]=grayimg[i][j][0]
newimg=cv2.merge([h,s,v])
newimg=np.uint8(newimg)
return newimg
def hsvtorgb(img,rgb):
h1,s1,v1=cv2.split(img)
rg = rgb.copy()
rows,cols=h1.shape
r,g,b=0.0,0.0,0.0
b1,g1,r1 = cv2.split(rg)
print(“hsv圖像大小為:%d*%d”%(rows,cols))
for i in range(rows):
for j in range(cols):
h=h1[i][j]
v=v1[i][j]/255
s=s1[i][j]/255
h=h2
hx=int(h/60.0)
hi=hx%6
f=hx-hi
p=v(1-s)
q=v*(1-fs)
t=v(1-(1-f)s)
if hi0:
r,g,b=v,t,p
elif hi1:
r,g,b=q,v,p
elif hi2:
r,g,b=p,v,t
elif hi3:
r,g,b=p,q,v
elif hi4:
r,g,b=t,p,v
elif hi5:
r,g,b=v,p,q
r,g,b=(r255),(g255),(b255)
r1[i][j]=int®
g1[i][j]=int(g)
b1[i][j]=int(b)
rg=cv2.merge([b1,g1,r1])
return rg
img=cv2.imread(“d:/rgb.bmp”)
gray=cv2.imread(“d:/gray.bmp”)
img=caijian(img)
gray=caijian(gray)
grayimg=graytograyimg(gray)
hsvimg=rgbtohsv(img)
hsgray=graytohsgry(grayimg,hsvimg)
rgbimg=hsvtorgb(hsgray,img)
cv2.imshow(“image”,img)
cv2.imshow(“grayimage”,grayimg)
cv2.imshow(“hsvimage”,hsvimg)
cv2.imshow(“hsgrayimage”,hsgray)
cv2.imshow(“rgbimage”,rgbimg)
cv2.waitkey(0)
cv2.destroyallwindows()

以上代碼是在盡量不調用opencv函數的情況下編寫,其目的是熟悉圖像處理原理和python編程,注釋很少,其中rgb轉hsv原理,hsv轉rgb原理,在csdn中都能找到,灰度圖替換hsv中的v原理其實很簡單,看代碼就能明白,不用再找資料。

總結

以上所述是小編給大家介紹的python+opencv實現圖像融合的原理及代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對服務器之家網站的支持!

原文鏈接:https://blog.csdn.net/Skymelu/article/details/84767689

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: av免费在线播放网址 | 性爱免费视频 | 久久精片 | 亚洲射情 | 久久色伦理资源站 | 88xx成人精品视频 | 一级做a爱片久久毛片a高清 | 麻豆91精品91久久久 | 亚洲va久久久噜噜噜久久男同 | 5xx免费看| 嫩呦国产一区二区三区av | 国产精品hd免费观看 | 亚洲va在线| 日本人乱人乱亲乱色视频观看 | 曰批全过程40分钟免费视频多人 | 美国一级黄色毛片 | 在线看免费观看av | 激情影院在线观看 | 一级免费黄色免费片 | 91福利社在线| 极品销魂一区二区三区 | 精品一区二区三区在线观看视频 | 91热久久免费频精品黑人99 | 伦一区二区三区中文字幕v亚洲 | 国产一级一片免费播放 | 欧美视频在线一区二区三区 | 成年人在线视频 | 国产日韩精品欧美一区视频 | 在线观看国产一区二区 | 一区二区三区日 | 国产1区2 | 嫩呦国产一区二区三区av | av在线免费观看中文字幕 | 在线高清中文字幕 | 蜜桃网站免费 | 成年人在线视频观看 | 蜜桃成品人免费视频 | 最新在线中文字幕 | 永久免费不卡在线观看黄网站 | 免费看一级毛片欧美 | 爱性久久久久久久 |