日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python金字塔_高斯金字塔与拉普拉斯金字塔的原理与python构建

發布時間:2023/12/20 python 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python金字塔_高斯金字塔与拉普拉斯金字塔的原理与python构建 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

高斯金字塔和拉普拉斯金字塔【1】在圖像相關領域應用廣泛,尤其是圖像融合和圖像分割方面。本文從理論和opencv實現兩個方面對兩種金字塔進行了介紹,并給出了二者的視覺效果。

1、高斯金字塔

在計算機視覺與圖像處理相關任務中,經常需要使用同一張圖的不同尺寸的子圖,我們可以使用高斯金字塔來獲取這些子圖。高斯金字塔是通過對一張圖逐級下采樣獲得的,如下圖所示:

上圖中最下層是原始的圖像,越靠上的層圖像尺寸越小,這一組圖像就被稱為高斯金字塔(在某些資料中,下采樣之前需要首先進行高斯濾波,本文為了簡化過程省略了這一步驟)。假設G0表示原始圖像,Gi表示第i次下采樣得到的圖像,那么高斯金字塔的計算過程可以表示如下:

其中Down表示下采樣函數,下采樣可以通過拋去圖像中的偶數行和偶數列來實現,這樣圖像長寬各減少二分之一,面積減少四分之一。opencv提供了pyrDown()函數用于下采樣,代碼如下:

def gaussian(ori_image, down_times=5):

# 1:添加第一個圖像為原始圖像

temp_gau = ori_image.copy()

gaussian_pyramid = [temp_gau]

for i in range(down_times):

# 2:連續存儲5次下采樣,這樣高斯金字塔就有6層

temp_gau = cv2.pyrDown(temp_gau)

gaussian_pyramid.append(temp_gau)

return gaussian_pyramid

進行5次下采樣可以獲得下面得6級高斯金字塔(第1級為原始高分辨率圖像):

可以看出,隨著下采樣的進行,圖像的分辨率不斷降低,視覺效果也越來越模糊。

2、拉普拉斯金字塔

拉普拉斯金字塔可以認為是殘差金字塔,用來存儲下采樣后圖片與原始圖片的差異。我們知道,如果高斯金字塔中任意一張圖Gi(比如G0為最初的高分辨率圖像)先進行下采樣得到圖Down(Gi),再進行上采樣得到圖Up(Down(Gi)),得到的Up(Down(Gi))與Gi是存在差異的,因為下采樣過程丟失的信息不能通過上采樣來完全恢復,也就是說下采樣是不可逆的。下面展示了一張圖先進行下采樣,再進行上采樣的過程:

可以看出,原始圖片下采樣后得到的小尺寸圖片雖然保留了視覺效果,但是將該小尺寸圖像再次上采樣也不能完整的恢復出原始圖像。為了能夠從下采樣圖像Down(Gi)中還原原始圖像Gi,我們需要記錄再次上采樣得到Up(Down(Gi))與原始圖片Gi之間的差異,這就是拉普拉斯金字塔的核心思想,下面最右邊的圖展示了這種差異(為了效果明顯我進行了伽馬矯正):

拉普拉斯金字塔就是記錄高斯金字塔每一級下采樣后再上采樣與下采樣前的差異,目的是為了能夠完整的恢復出每一層級的下采樣前圖像。下面的公式就是前面的差異記錄過程:

對于前文得到的高斯金字塔,現在可以構建對應的拉普拉斯金字塔如下(第1級為高斯金字塔中最小尺寸的圖,也就是高斯金字塔最后1級;為了下圖看起來更明顯我進行了伽馬矯正):

opencv提供了pyrUp()函數用于上下采樣過程,對應代碼如下:

def laplacian(gaussian_pyramid, up_times=5):

laplacian_pyramid = [gaussian_pyramid[-1]]

for i in range(up_times, 0, -1):

# i的取值為5,4,3,2,1,0也就是拉普拉斯金字塔有6層

temp_pyrUp = cv2.pyrUp(gaussian_pyramid[i])

temp_lap = cv2.subtract(gaussian_pyramid[i-1], temp_pyrUp)

laplacian_pyramid.append(temp_lap)

return laplacian_pyramid

3、總結

高斯金字塔和拉普拉斯金字塔作為獲取不同分辨率圖像的方法,原理并不復雜,但是自己并沒有找到中文論文專門介紹,僅僅找到了拉普拉斯金字塔論文【1】,大部分其它論文都是直接對其進行應用的。所以,如果本文的介紹有誤,請幫我指出此錯誤。

參考文獻:

【1】Burt P, Adelson E. The Laplacian pyramid as a compact image code[J]. IEEE Transactions on communications, 1983, 31(4): 532-540.

總結

以上是生活随笔為你收集整理的python金字塔_高斯金字塔与拉普拉斯金字塔的原理与python构建的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。