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

Python圖像處理之圖像金字塔的向上和向下取樣

 更新時間:2022年09月23日 09:34:24   作者:wadfdhsajd  
圖像金字塔是指由一組圖像且不同分別率的子圖集合,它是圖像多尺度表達(dá)的一種,以多分辨率來解釋圖像的結(jié)構(gòu),主要用于圖像的分割或壓縮。本文主要介紹了圖像金字塔的圖像向下取樣和向上取樣,感興趣的可以了解一下

一.圖像金字塔

圖像金字塔是指由一組圖像且不同分別率的子圖集合,它是圖像多尺度表達(dá)的一種,以多分辨率來解釋圖像的結(jié)構(gòu),主要用于圖像的分割或壓縮。一幅圖像的金字塔是一系列以金字塔形狀排列的分辨率逐步降低,且來源于同一張原始圖的圖像集合。如圖6-11所示,它包括了四層圖像,將這一層一層的圖像比喻成金字塔。圖像金字塔可以通過梯次向下采樣獲得,直到達(dá)到某個終止條件才停止采樣,在向下采樣中,層級越高,則圖像越小,分辨率越低。

生成圖像金字塔主要包括兩種方式——向下取樣、向上取樣。在圖6-11中,將圖像G0轉(zhuǎn)換為G1、G2、G3,圖像分辨率不斷降低的過程稱為向下取樣;將G3轉(zhuǎn)換為G2、G1、G0,圖像分辨率不斷增大的過程稱為向上取樣。

二.圖像向下取樣

在圖像向下取樣中,使用最多的是高斯金字塔。它將對圖像Gi進(jìn)行高斯核卷積,并刪除原圖中所有的偶數(shù)行和列,最終縮小圖像。其中,高斯核卷積運算就是對整幅圖像進(jìn)行加權(quán)平均的過程,每一個像素點的值,都由其本身和鄰域內(nèi)的其他像素值(權(quán)重不同)經(jīng)過加權(quán)平均后得到。常見的3×3和5×5高斯核如下:

 高斯核卷積讓臨近中心的像素點具有更高的重要度,對周圍像素計算加權(quán)平均值,如圖6-12所示,其中心位置權(quán)重最高為0.4。

顯而易見,原始圖像Gi具有M×N個像素,進(jìn)行向下取樣之后,所得到的圖像Gi+1具有M/2×N/2個像素,只有原圖的四分之一。通過對輸入的原始圖像不停迭代以上步驟就會得到整個金字塔。注意,由于每次向下取樣會刪除偶數(shù)行和列,所以它會不停地丟失圖像的信息。

在OpenCV中,向下取樣使用的函數(shù)為pyrDown(),其原型如下所示:

dst = pyrDown(src[, dst[, dstsize[, borderType]]])

  • src表示輸入圖像,
  • dst表示輸出圖像,和輸入圖像具有一樣的尺寸和類型
  • dstsize表示輸出圖像的大小,默認(rèn)值為Size()
  • borderType表示像素外推方法,詳見cv::bordertypes

實現(xiàn)代碼如下所示:

# -*- coding: utf-8 -*-
import cv2  
import numpy as np  
import matplotlib.pyplot as plt
#讀取原始圖像
img = cv2.imread('nv.png')
#圖像向下取樣
r = cv2.pyrDown(img)
#顯示圖像
cv2.imshow('original', img)
cv2.imshow('PyrDown', r)
cv2.waitKey()
cv2.destroyAllWindows()

輸出結(jié)果如圖6-13所示,它將原始圖像壓縮成原圖的四分之一。

多次向下取樣的代碼如下:

# -*- coding: utf-8 -*-
import cv2  
import numpy as np  
import matplotlib.pyplot as plt
#讀取原始圖像
img = cv2.imread('nv.png')
#圖像向下取樣
r1 = cv2.pyrDown(img)
r2 = cv2.pyrDown(r1)
r3 = cv2.pyrDown(r2)
#顯示圖像
cv2.imshow('original', img)
cv2.imshow('PyrDown1', r1)
cv2.imshow('PyrDown2', r2)
cv2.imshow('PyrDown3', r3)
cv2.waitKey()
cv2.destroyAllWindows()

輸出結(jié)果如圖所示:

三.圖像向上取樣

在圖像向上取樣是由小圖像不斷放圖像的過程。它將圖像在每個方向上擴大為原圖像的2倍,新增的行和列均用0來填充,并使用與“向下取樣”相同的卷積核乘以4,再與放大后的圖像進(jìn)行卷積運算,以獲得“新增像素”的新值。如圖6-15所示,它在原始像素45、123、89、149之間各新增了一行和一列值為0的像素。

在OpenCV中,向上取樣使用的函數(shù)為pyrUp(),其原型如下所示:

dst = pyrUp(src[, dst[, dstsize[, borderType]]])

  • src表示輸入圖像,
  • dst表示輸出圖像,和輸入圖像具有一樣的尺寸和類型
  • dstsize表示輸出圖像的大小,默認(rèn)值為Size()
  • borderType表示像素外推方法,詳見cv::bordertypes

實現(xiàn)代碼如下所示:

# -*- coding: utf-8 -*-
import cv2  
import numpy as np  
import matplotlib.pyplot as plt
#讀取原始圖像
img = cv2.imread('lena.png')
#圖像向上取樣
r = cv2.pyrUp(img)
#顯示圖像
cv2.imshow('original', img)
cv2.imshow('PyrUp', r)
cv2.waitKey()
cv2.destroyAllWindows()

輸出結(jié)果如圖6-16所示,它將原始圖像擴大為原圖像的四倍。

 多次向上取樣的代碼如下:

# -*- coding: utf-8 -*-
import cv2  
import numpy as np  
import matplotlib.pyplot as plt
#讀取原始圖像
img = cv2.imread('lena2.png')
#圖像向上取樣
r1 = cv2.pyrUp(img)
r2 = cv2.pyrUp(r1)
r3 = cv2.pyrUp(r2)
#顯示圖像
cv2.imshow('original', img)
cv2.imshow('PyrUp1', r1)
cv2.imshow('PyrUp2', r2)
cv2.imshow('PyrUp3', r3)
cv2.waitKey()
cv2.destroyAllWindows()

輸出結(jié)果如圖6-17所示,每次向上取樣均為上次圖像的四倍,但圖像的清晰度會降低。

到此這篇關(guān)于Python圖像處理之圖像金字塔的向上和向下取樣的文章就介紹到這了,更多相關(guān)Python圖像金字塔內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python如何以表格形式打印輸出的方法示例

    python如何以表格形式打印輸出的方法示例

    這篇文章主要介紹了python如何以表格形式打印輸出的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-06-06
  • python實現(xiàn)查找所有程序的安裝信息

    python實現(xiàn)查找所有程序的安裝信息

    本文給大家分享的是使用python通過注冊表信息實現(xiàn)快速查找windows應(yīng)用程序的安裝信息的方法和代碼示例,有需要的小伙伴可以參考下
    2020-02-02
  • Python面向?qū)ο竽Хǚ椒ê蛦卫K代碼實例

    Python面向?qū)ο竽Хǚ椒ê蛦卫K代碼實例

    這篇文章主要介紹了Python面向?qū)ο竽Хǚ椒ê蛦卫K代碼實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-03-03
  • 利用Python進(jìn)行微服務(wù)架構(gòu)的監(jiān)控與日志分析

    利用Python進(jìn)行微服務(wù)架構(gòu)的監(jiān)控與日志分析

    Python作為一種強大的編程語言,提供了豐富的工具和庫,可以幫助我們實現(xiàn)對微服務(wù)架構(gòu)的監(jiān)控和日志分析,本文將介紹如何利用Python編寫監(jiān)控腳本和日志分析程序,以便于更好地管理和維護微服務(wù)系統(tǒng)
    2024-03-03
  • Python判斷變量是否已經(jīng)定義的方法

    Python判斷變量是否已經(jīng)定義的方法

    這篇文章主要介紹了Python判斷變量是否已經(jīng)定義的方法,非常實用的方法,需要的朋友可以參考下
    2014-08-08
  • Python深入學(xué)習(xí)之對象的屬性

    Python深入學(xué)習(xí)之對象的屬性

    這篇文章主要介紹了Python深入學(xué)習(xí)之對象的屬性,本文從較深的層次講解對象屬性的內(nèi)部運行方式,需要的朋友可以參考下
    2014-08-08
  • 一文帶你了解Python 四種常見基礎(chǔ)爬蟲方法介紹

    一文帶你了解Python 四種常見基礎(chǔ)爬蟲方法介紹

    這篇文章主要介紹了一文帶你了解Python 四種常見基礎(chǔ)爬蟲方法介紹,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Python使用zip合并相鄰列表項的方法示例

    Python使用zip合并相鄰列表項的方法示例

    這篇文章主要介紹了Python使用zip合并相鄰列表項的方法,涉及zip、iter函數(shù)合并相鄰列表項、切片等相關(guān)操作技巧,需要的朋友可以參考下
    2018-03-03
  • 在PyCharm中接入deepseek的API的各種方法

    在PyCharm中接入deepseek的API的各種方法

    本文詳細(xì)介紹了在PyCharm中接入DeepSeek API的步驟,包括獲取API密鑰、安裝庫、編寫代碼、運行和調(diào)試、處理響應(yīng)以及可選的封裝為函數(shù)或類,此外,還提供了替代的調(diào)用方法,感興趣的小伙伴跟著小編一起來看看吧
    2025-02-02
  • 解決安裝pytorch因網(wǎng)速問題失敗的情況

    解決安裝pytorch因網(wǎng)速問題失敗的情況

    這篇文章主要介紹了解決安裝pytorch因網(wǎng)速問題失敗的情況,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-05-05

最新評論

吴堡县| 上林县| 鄂伦春自治旗| 漳平市| 沁阳市| 铜鼓县| 宜昌市| 富源县| 莲花县| 台山市| 北流市| 土默特右旗| 铜鼓县| 罗平县| 巴林左旗| 合川市| 磴口县| 苏尼特左旗| 临夏县| 绥芬河市| 云阳县| 丰都县| 共和县| 凤凰县| 盐城市| 渝中区| 永福县| 开江县| 册亨县| 海南省| 旬阳县| 大新县| 固阳县| 仁寿县| 海城市| 曲松县| 桦川县| 易门县| 荆州市| 江都市| 乡城县|