當前位置:編程學習大全網 - 源碼下載 - 圖像平均池

圖像平均池

壹.共用簡介

平均池(Average pooling):將圖片分成固定大小的網格,網格中的像素值取網格中所有像素的平均值。

Pooling:用大小相等的網格劃分圖片,並在網格中找到代表值的過程。

池化是卷積神經網絡中壹種非常重要的處理方法,可以有效地降低圖像的維數。

平均池的定義:

2.用4*4的網格平均匯集輸入圖像。

導入cv2

將numpy作為np導入

#平均池

def average_pooling(img,G=4):

out = img.copy()

h,W,C = img.shape

Nh = int(H / G)

Nw = int(W / G)

對於範圍內的y(Nh):

對於範圍內的x(Nw):

對於範圍(C)內的C:

out[G*y:G*(y+1),G*x:G*(x+1),c]= NP . mean(out[G * y:G *(y+1),G*x:G*(x+1),c])。astype(np.int)

退回去

#讀取圖像

img = cv2.imread("../paojie.jpg”)

#平均池

out = average_pooling(img)

#保存結果

cv2.imwrite("out.jpg ",out)

cv2.imshow("結果",out)

cv2.waitKey(0)

cv2.destroyAllWindows()

三。輸出結果

4.深度學習中的平均池操作,以pytorch庫為例。

導入cv2

將numpy作為np導入

進口火炬

將torch.nn作為nn導入

img = cv2.imread('../paojie.jpg ',0)?#讀入灰度圖像

img = np.array(img,dtype='float32 ')

img = torch . from _ numpy(img . shape(1,1,img.shape[0],img.shape[1])?#將灰度圖像轉換為張量

avgPool = nn。AvgPool2d(4)?#4*4窗口,步長為4的平均池。

img = avgPool(img)

img = torch.squeeze(img)?#刪除1的維度

img = img.numpy()。astype('uint8 ')?#轉換格式並準備輸出。

cv2.imwrite("out.jpg ",img)

cv2.imshow("結果",img)

cv2.waitKey(0)

cv2.destroyAllWindows()

5.pytorch中的平均池化輸出結果(AvgPool2d()函數)

可以看出pytorch中的AvgPool2d函數降低了平均池化後圖像的維度。

不及物動詞參考內容

blogs.com/wojianxin/p/12496509.html

  • 上一篇:妳適合學習Java嗎?
  • 下一篇:“0x77efbad4”命令引用的“0x77efbad4”內存在啟動時出現,不能“寫入”。問題是什麽,怎麽解決?
  • copyright 2024編程學習大全網