1. 程式人生 > 實用技巧 >[Python影象處理]十二.影象向下取樣和向上取樣

[Python影象處理]十二.影象向下取樣和向上取樣

影象向下取樣

在影象向下取樣中,使用最多的是高斯金字塔。它將對影象Gi進行高斯核卷積,並刪除影象中所有的偶數行和列,最終縮小影象,其中高斯卷積核運算就是對整幅影象進行加權平均的過程,每一個畫素點的值,都是由其本身和領域內的其他畫素值經過加權平均後得到。

dst = cv2.pyRdown(src, dstsize, borderType)

src: 表示輸入影象

dst: 表示輸出影象的大小,和輸入影象具有一樣的尺寸和型別

dstsize:表示輸出影象的大小,預設值位Size()

borderType:表示元素外推方法

import cv2
def test():
    img = cv2.imread("
src.png") r = cv2.pyrDown(img) r1 = cv2.pyrDown(r) r2 = cv2.pyrDown(r1) r3 = cv2.pyrDown(r2) cv2.imshow('original', img) cv2.imshow('pyrDown1', r1) cv2.imshow('pyrDown2', r2) cv2.imshow('pyrDown3', r3)s cv2.waitKey() cv2.destroyAllWindows() test()

影象向上取樣

在影象向上取樣時由小影象不斷放大影象的過程。它將影象每個方向上擴大為原影象的2倍,新增的行和列均用0來填充,並使用與向下取樣相同的卷積核乘以4,再與放大的影象進行卷積核運算,以獲得"新增畫素"的新增。

dst = cv2.pyrUp(src, dstsize, borderType)

src:表示輸入影象

dstsize:表示輸出影象的大小,和輸入影象具有一樣的尺寸和型別

borderType:表示畫素往外推

import cv2
def test():
    img = cv2.imread("src.png")
    r = cv2.pyrUp(img)
    r1 = cv2.pyrUp(r)
    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() test()