最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python+OpenCV實現(xiàn)圖像融合的原理及代碼

 更新時間:2018年12月03日 15:35:13   作者:~沐春風(fēng)~  
這篇文章主要介紹了Python+OpenCV實現(xiàn)圖像融合的原理及代碼,本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下

根據(jù)導(dǎo)師作業(yè)安排,在學(xué)習(xí)數(shù)字圖像處理(剛薩雷斯版)第六章 彩色圖像處理 中的彩色模型后,導(dǎo)師安排了一個比較有趣的作業(yè):

融合原理為:

1 注意:遙感原RGB圖image和灰度圖Grayimage為測試用的輸入圖像;

2 步驟:(1)將RGB轉(zhuǎn)換為HSV空間(H:色調(diào),S:飽和度,V:明度);

(2)用Gray圖像誒換掉HSV中的V;

(3)替換后的HSV轉(zhuǎn)換回RGB空間即可得到結(jié)果。

書上只介紹了HSI彩色模型,并沒有說到HSV,所以需要網(wǎng)上查找資料。

Python代碼如下:

import cv2
import numpy as np
import math
from matplotlib import pyplot as plt
def caijian(img):#裁剪圖像與否根據(jù)選擇圖像大小而定,調(diào)用了OpenCV函數(shù)
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三向量相同,色調(diào)為黑
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函數(shù)是合并單通道成多通道
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()

以上代碼是在盡量不調(diào)用OpenCV函數(shù)的情況下編寫,其目的是熟悉圖像處理原理和Python編程,注釋很少,其中RGB轉(zhuǎn)HSV原理,HSV轉(zhuǎn)RGB原理,在CSDN中都能找到,灰度圖替換HSV中的V原理其實很簡單,看代碼就能明白,不用再找資料。

總結(jié)

以上所述是小編給大家介紹的Python+OpenCV實現(xiàn)圖像融合的原理及代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • 對Python3+gdal 讀取tiff格式數(shù)據(jù)的實例講解

    對Python3+gdal 讀取tiff格式數(shù)據(jù)的實例講解

    今天小編就為大家分享一篇對Python3+gdal 讀取tiff格式數(shù)據(jù)的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • Python的Scrapy框架解析

    Python的Scrapy框架解析

    這篇文章主要為大家介紹了Python的Scrapy框架解析 ,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • 基于python的文字轉(zhuǎn)圖片工具示例詳解

    基于python的文字轉(zhuǎn)圖片工具示例詳解

    這篇文章主要介紹了基于python的文字轉(zhuǎn)圖片工具,請求示例是使用?curl?命令請求示例,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-08-08
  • Pygame Draw繪圖函數(shù)的具體使用

    Pygame Draw繪圖函數(shù)的具體使用

    Pygame 中提供了一個draw模塊用來繪制一些簡單的圖形狀,比如矩形、多邊形、圓形、直線、弧線等,本文就詳細(xì)的介紹一下如何使用
    2021-11-11
  • Django  ORM 練習(xí)題及答案

    Django ORM 練習(xí)題及答案

    這篇文章主要介紹了Django ORM 練習(xí)題及答案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-07-07
  • Python 日期區(qū)間處理 (本周本月上周上月...)

    Python 日期區(qū)間處理 (本周本月上周上月...)

    這篇文章主要介紹了Python 日期區(qū)間處理 (本周本月上周上月...),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • 對python append 與淺拷貝的實例講解

    對python append 與淺拷貝的實例講解

    今天小編就為大家分享一篇對python append 與淺拷貝的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • Python利用 matplotlib 繪制直方圖

    Python利用 matplotlib 繪制直方圖

    這篇文章主要介紹了Python利用 matplotlib 模塊繪制直方圖相關(guān)屬性和方法,具有一定的參考價值,需要的朋友可以參考一下
    2021-12-12
  • python中的字符串內(nèi)部換行方法

    python中的字符串內(nèi)部換行方法

    今天小編就為大家分享一篇python中的字符串內(nèi)部換行方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • Python基于jieba庫進行簡單分詞及詞云功能實現(xiàn)方法

    Python基于jieba庫進行簡單分詞及詞云功能實現(xiàn)方法

    這篇文章主要介紹了Python基于jieba庫進行簡單分詞及詞云功能實現(xiàn)方法,結(jié)合實例形式分析了Python分詞庫jieba以及wordcloud庫進行詞云繪制相關(guān)步驟與操作技巧,需要的朋友可以參考下
    2018-06-06

最新評論

南靖县| 达州市| 奎屯市| 明溪县| 南平市| 昔阳县| 华蓥市| 乐平市| 磐安县| 桂平市| 宜黄县| 沙田区| 青神县| 昌乐县| 望奎县| 桃源县| 顺昌县| 四川省| 上虞市| 观塘区| 安新县| 高密市| 泸州市| 西乌珠穆沁旗| 南和县| 利辛县| 武威市| 泰顺县| 淮阳县| 宜兰市| 页游| 阿巴嘎旗| 阳山县| 滦平县| 静海县| 绥芬河市| 东辽县| 舟山市| 大安市| 太湖县| 金溪县|