pandding實現 replicate 操作

2021-09-27 21:29:20 字數 1446 閱讀 1070

影象中的padding操作一般是zeropadding,這次有作業要求實現replicate』

,填補的畫素拷貝與其最近的影象邊界畫素灰度。研究了一下,寫成**如下:

# -*- coding: utf-8 -*-

"""created on sun oct 6 14:30:58 2019

@author: administrator

"""import numpy as np

def compute_conv(fm,k):

[h,w]=fm.shape

r=int(k/2)

#定義邊界填充0後的map

padding_fm=np.zeros([h+r*2,w+r*2],np.float32)

#將輸入在指定該區域賦值,即除了4個邊界後,剩下的區域

padding_fm[r:h+r,r:w+r]=fm

#如果填充方式是'replicate'

for j in range(r):

padding_fm[r-1-j][r-1-j] = padding_fm[r-j][r-j]

padding_fm[r-1-j][r+w+j] = padding_fm[r-j][r+w-1+j]

padding_fm[r+h+j][r-1-j] = padding_fm[r+h-1+j][r-j]

padding_fm[r+h+j][r+w+j] = padding_fm[r+h-1+j][r+w-1+j]

for i in range(r-j, r+w+j):

padding_fm[r-1-j][i] = padding_fm[r-j][i]

for i in range(r-j, r+h+j):

padding_fm[i][r+w+j] = padding_fm[i][r+w-1+j]

for i in range(r-j, r+h+j):

padding_fm[i][r-1-j] = padding_fm[i][r-j]

for i in range(r-j, r+w+j):

padding_fm[r+h+j][i] = padding_fm[r+h-1+j][i]

print(padding_fm)

weights_data=[

[ 1, 2, 3],

[4, 5, 6],

[7, 8, 9]

] weights_data=[

[ 1, 2, 3, 4, 5],

[6, 7, 8, 9, 10],

[11,12,13,14,15],

[16,17,18,19,20],

[21,22,23,24,25]

]

fm = np.asarray(weights_data,np.float32)

compute_conv(fm,5)

快速排序演算法實現(遞迴實現 棧實現)

基本思想 選擇乙個基準元素,比如選擇最後乙個元素,通過一趟掃瞄,將待排序列分成兩部分,一部分比基準元素小,一部分大於等於基準元素,此時基準元素在其排好序後的正確位置,又稱為軸位置,此位置的元素確定後不再參與排序,然後再用同樣的方法遞迴地排序劃分的兩部分。分析 快速排序是不穩定的排序。快速排序的時間複...

介面實現與配置實現

在實現系統功能的時候,通常會首先定義好功能的介面,在系統功能不斷被實現的過程中,慢慢的發現有些介面的實現很類似,這個時候通常會開始做一次抽象,形 成乙個共同的部分,慢慢的系統形成了乙個抽象的層次,而為了通用,通常是通過定義介面,形成乙個抽象類,抽象類中暴露出一些抽象方法供外部擴充套件實 現,逐步的積...

js分頁實現,前端實現。

主要是借鑑了網上乙個例子,自己重新加了樣式,新增了跳轉,修改了一些小地方,用於和大家一起分享,前端分頁的技巧,的資料是我已經寫好了,其實大家也可以前端渲染 然後再分頁,都是可以的。其實分頁最關鍵是這兩句 var startrow currentpage 1 pagesize 1 currentpag...