日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

雙線性插值理解與Python實現

系統 2261 0

轉載自https://blog.csdn.net/sinat_37011812/article/details/81842957
雙線性插值
雙線性插值理解與Python實現_第1張圖片
雙線性插值理解與Python實現_第2張圖片
公式就是這么推來的,主要就是在x方向和y方向上都進行線性插值,利用臨近點進行計算

在計算的時候利用了幾何中心對齊來優化原來的直接縮放

            
              __author__ = 'Alex Wang'
 
import numpy as np
import cv2
import time
 
 
'''
python implementation of bilinear interpolation
'''
 
 
def bilinear_interpolation(img,out_dim):
    src_h, src_w, channel = img.shape
    dst_h, dst_w = out_dim[1], out_dim[0]
    if src_h == dst_h and src_w == dst_w:
        return img.copy()
    dst_img = np.zeros((dst_h,dst_w,3),dtype=np.uint8)
    scale_x, scale_y = float(src_w) / dst_w, float(src_h) / dst_h
    for i in range(3):
        for dst_y in range(dst_h):
            for dst_x in range(dst_w):
 
                # find the origin x and y coordinates of dst image x and y
                # use geometric center symmetry
                # if use direct way, src_x = dst_x * scale_x
                src_x = (dst_x + 0.5) * scale_x - 0.5
                src_y = (dst_y + 0.5) * scale_y - 0.5
 
                # find the coordinates of the points which will be used to compute the interpolation
                src_x0 = int(np.floor(src_x))
                src_x1 = min(src_x0 + 1 ,src_w - 1)
                src_y0 = int(np.floor(src_y))
                src_y1 = min(src_y0 + 1, src_h - 1)
 
                # calculate the interpolation
                temp0 = (src_x1 - src_x) * img[src_y0,src_x0,i] + (src_x - src_x0) * img[src_y0,src_x1,i]
                temp1 = (src_x1 - src_x) * img[src_y1,src_x0,i] + (src_x - src_x0) * img[src_y1,src_x1,i]
                dst_img[dst_y,dst_x,i] = int((src_y1 - src_y) * temp0 + (src_y - src_y0) * temp1)
 
    return dst_img
 
 
if __name__ == '__main__':
    img = cv2.imread('data/cat1.jpg')
    start = time.time()
    dst = bilinear_interpolation(img,(100,100))
    print 'cost %f seconds' % (time.time() - start)
    cv2.imshow('result',dst)
    cv2.waitKey()

            
          

References:
https://blog.csdn.net/xbinworld/article/details/65660665

https://blog.csdn.net/wudi_X/article/details/79782832

https://en.wikipedia.org/wiki/Bilinear_interpolation


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 黄骅市| 通许县| 海兴县| 丽江市| 科技| 东辽县| 九台市| 阿勒泰市| 田阳县| 梁山县| 大名县| 山阴县| 福泉市| 潍坊市| 调兵山市| 临城县| 樟树市| 玉田县| 雅江县| 溧阳市| 从化市| 科技| 江城| 衡东县| 乌拉特中旗| 尼木县| 通道| 昌黎县| 曲沃县| 保定市| 府谷县| 固原市| 扶余县| 东至县| 唐海县| 黄石市| 苍山县| 呼玛县| 蛟河市| 吴川市| 宁德市|