python使用opencv resize圖像不進(jìn)行插值的操作
如下所示:
def resize(src, dsize, dst=None, fx=None, fy=None, interpolation=None):
如果使用vanilla resize,不改變默認(rèn)參數(shù),就會對原圖像進(jìn)行插值操作。不關(guān)你是擴大還是縮小圖片,都會通過插值產(chǎn)生新的像素值。
對于語義分割,target的處理,如果是對他進(jìn)行resize操作的話。就希望不產(chǎn)生新的像素值,因為他的顏色信息,代表了像素的類別信息。
但是我們有時候希望resize之后不產(chǎn)生新的像素值,而是產(chǎn)生利用最近鄰點的像素值作為新產(chǎn)生的像素值。要實現(xiàn)這個操作只需要將interpolation=cv2.INTER_NEAREST,這個參數(shù)的默認(rèn)值是雙線性插值,幾乎必然會產(chǎn)生新的像素值。
補充知識:python+OpenCV最近鄰域插值法 雙線性插值法原理
1.最近鄰域插值法
假設(shè)原圖像大小為1022,縮放到510,可以用原圖像上的點來表示目標(biāo)圖像上的每一個點。
例如目標(biāo)圖像上的點(1,2)可以用原圖像的點(2,4)來表示。
dst x 1 -> dst x 2 newX
newX = x*(src 行/目標(biāo) 行) newX = 1*(10/5) = 2
newY = y*(src列/目標(biāo) 列) newY = 2*(20/10) = 4
12.3取12,當(dāng)為小數(shù)時則取離整數(shù)最近的數(shù)
2.雙線性插值法

A1(15.2,22)
A2(15.2,23)
B1(15,22.3)
B2(16,22.3)
A1 = 20%上面的點 + 80%下面的點A2
B1 = 30%左邊的點 + 70%右面的點B2
中間的點 = A130% + A270%
中間的點 = B120% + B280%
以上這篇python使用opencv resize圖像不進(jìn)行插值的操作就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
python 進(jìn)程的幾種創(chuàng)建方式詳解
這篇文章主要介紹了python 進(jìn)程的幾種創(chuàng)建方式詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-08-08
pycharm創(chuàng)建臨時文件scatch file的方法詳解
JetBrains PyCharm是一種Python IDE,其帶有一整套可以幫助用戶在使用Python語言開發(fā)時提高其效率的工具,這篇文章主要介紹了pycharm創(chuàng)建臨時文件scatch file的方法,需要的朋友可以參考下2024-07-07
Django?+?Taro?前后端分離項目實現(xiàn)企業(yè)微信登錄功能
這篇文章主要介紹了Django?+?Taro?前后端分離項目實現(xiàn)企業(yè)微信登錄功能,本文記錄一下企業(yè)微信登錄的流程,結(jié)合示例代碼給大家分享實現(xiàn)思路,需要的朋友可以參考下2022-04-04
Python中關(guān)于元組 集合 字符串 函數(shù) 異常處理的全面詳解
本篇文章介紹了我在學(xué)習(xí)python過程中對元組、集合、字符串、函數(shù)、異常處理的總結(jié),通讀本篇對大家的學(xué)習(xí)或工作具有一定的價值,需要的朋友可以參考下2021-10-10

