綁定帳號登入

Android 台灣中文網

tag 標籤: 二種

相關日誌

分享 雙線性插值 implement 的二種寫法
嵐風 2021-8-26 15:24
第一種針對灰照片 def graybinter(image): copy = np.copy(image)# 輸入圖像的副本 iupD, ileftR = copy.shape # 輸入圖像的尺寸(行、列) upD = int(iupD * 2)# 輸出圖像的尺寸 leftR = int(ileftR * 2) o = np.zeros((upD, leftR)) # 輸出圖片 for i in range(upD): for j in range(leftR): # 輸出圖片中座標 (i,j)對應至輸入圖片中的最近的四個座標(x1,y1)(x2, y2),(x3, y3),(x4,y4)的均值 temp_x = i / upD * iupD temp_y = j / leftR * ileftR x1 = int(temp_x) y1 = int(temp_y) x2 = x1 y2 = y1 + 1 x3 = x1 + 1 y3 = y1 x4 = x1 + 1 y4 = y1 + 1 u = temp_x - x1 v = temp_y - y1 # 防止越界 if x4 = iupD: x4 = iupD - 1 x2 = x4 x1 = x4 - 1 x3 = x4 - 1 if y4 = ileftR: y4 = ileftR - 1 y3 = y4 y1 = y4 - 1 y2 = y4 - 1 # 插值 o = (1-u)*(1-v)*int(copy ) + (1-u)*v*int(copy ) + u*(1-v)*int(copy ) + u*v*int(copy ) return o.astype(np.uint8) 第二種針對彩照片 def rgbinter(img): scrH,scrW,c=img.shape dstH = scrH*2 dstW = scrW*2 img=np.pad(img,((0,1),(0,1),(0,0)),"constant") retimg=np.zeros((dstH,dstW,3),dtype=np.uint8) for i in range(dstH): for j in range(dstW): scrx=(i+1)*(scrH/dstH)-1 scry=(j+1)*(scrW/dstW)-1 x=math.floor(scrx) y=math.floor(scry) u=scrx-x v=scry-y retimg =(1-u)*(1-v)*img +u*(1-v)*img +(1-u)*v*img +u*v*img return retimg.astype(np.uint8)
159 次閱讀|0 個評論