關于Tensorflow中的幾個image_resize對比

方法介紹:

簡單嘗試了一下Tensorflow中的幾調(diào)整圖像大小的方法:
首先從知乎上搬磚下來相關中文介紹:

## Resizing
*   @{tf.image.resize_images}
*   @{tf.image.resize_area}
*   @{tf.image.resize_bicubic}
*   @{tf.image.resize_bilinear}
*   @{tf.image.resize_nearest_neighbor}

resize_images是總的接口茬腿,該接口的參數(shù)如下:

resize_images(images, size, method=ResizeMethod.BILINEAR, align_corners=False)

形參:

images:shape 為[batch, height, width, channels]的4-D圖像張量或者shape為 [height, width, channels]的3-D圖像張量智政,如果傳入圖像張量不兼容所制定規(guī)則會報錯

size:一個dtypeint32擁有兩個元素的1-D張量藕咏,格式為[new_height, new_width]

method:resize使用的方法氮凝,有四種方式芝硬,分別為:

方法 介紹
ResizeMethod.BILINEAR 雙線性內(nèi)插泻蚊,其核心思想是在兩個方向分別進行一次線性插值栅哀。
ResizeMethod.NEAREST_NEIGHBOR 最近鄰插值法溃睹,將變換后的圖像中的原像素點最鄰近像素的灰度值賦給原像素點的方法而账,返回圖像張量dtype與所傳入的相同。
ResizeMethod.BICUBIC 雙三次插值因篇,雙三次插值是一種更加復雜的插值方式泞辐,它能創(chuàng)造出比雙線性插值更平滑的圖像邊緣。
ResizeMethod.AREA 基于區(qū)域的圖像插值算法竞滓,首先將原始低分辨率圖像分割成不同區(qū)域咐吼,然后將插值點映射到低分辨率圖像, 判斷其所屬區(qū)域商佑, 最后根據(jù)插值點的鄰域像素設計不同的插值公式锯茄, 計算插值點的值。

align_corners:精確對準輸入輸出圖像的四個角茶没,默認為false不精確對準肌幽。

return:dtypefloat3-D4-D圖像張量,其shape分別為[batch, new_height, new_width, channels][new_height, new_width, channels]

而其余四個接口則是具體的不同實現(xiàn)圖像縮放處理的方法抓半,他們的參數(shù)都形如:

(images, size, align_corners=False, name=None)

第一個參數(shù)要求其shape一定是形如[batch, height, width, channels]的4-D格式喂急,中間兩個參數(shù)如resize_image所解釋,后一個name是操作的名稱笛求,可有可無廊移。

實驗部分

首先我們拿紅發(fā)香克斯的圖像作為測試:


shanks_small.jpg

測試代碼如下:

import tensorflow as tf
import cv2
import numpy as np

img_raw = cv2.imread('data/shanks_small.jpg')
img_in = img_raw / 255.
h, w, _ = img_in.shape

tf_img_in = tf.placeholder(dtype=tf.float32, shape=(None, None, 3))

scale = 3
tf_img_op1 = tf.image.resize_images(tf_img_in, [h * scale, w * scale], method=tf.image.ResizeMethod.NEAREST_NEIGHBOR)
tf_img_op2 = tf.image.resize_images(tf_img_in, [h * scale, w * scale], method=tf.image.ResizeMethod.BILINEAR)
tf_img_op3 = tf.image.resize_images(tf_img_in, [h * scale, w * scale], method=tf.image.ResizeMethod.BICUBIC)
tf_img_op4 = tf.image.resize_images(tf_img_in, [h * scale, w * scale], method=tf.image.ResizeMethod.AREA)

sess = tf.Session()
sess.run(tf.global_variables_initializer())

img_op1, img_op2, img_op3, img_op4 = sess.run([tf_img_op1, tf_img_op2, tf_img_op3, tf_img_op4],
                                              feed_dict={tf_img_in: img_in})

img_op1[img_op1 < 0] = 0
img_op1[img_op1 > 1] = 1
img_op2[img_op1 < 0] = 0
img_op2[img_op1 > 1] = 1
img_op3[img_op1 < 0] = 0
img_op3[img_op1 > 1] = 1
img_op4[img_op1 < 0] = 0
img_op4[img_op1 > 1] = 1

img_op1 = np.asarray(img_op1 * 255, np.uint8)
img_op2 = np.asarray(img_op2 * 255, np.uint8)
img_op3 = np.asarray(img_op3 * 255, np.uint8)
img_op4 = np.asarray(img_op4 * 255, np.uint8)

cv2.imshow('image in', img_raw)
cv2.imshow('nearest neighbor', img_op1)
cv2.imshow('bi-linear', img_op2)
cv2.imshow('bi-cubic', img_op3)
cv2.imshow('area', img_op4)

# cv2.imwrite('data/nearest_neighbor.jpg', img_op1)
# cv2.imwrite('data/bi-linear.jpg', img_op2)
# cv2.imwrite('data/bi-cubic.jpg', img_op3)
# cv2.imwrite('data/area.jpg', img_op4)

cv2.waitKey()

其中關于python下配置tensorflow以及opencv的網(wǎng)上方法比較多讥蔽,可以自行g(shù)oogle之,或者我這有一個懶人版的配置tensorflow-gpu的參考画机。
最終效果如下:

area.jpg

bi-cubic.jpg
bi-linear.jpg
nearest_neighbor.jpg

比較奇怪的是bi-cubic插值的方法中出現(xiàn)了許多artifacts

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末冶伞,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子步氏,更是在濱河造成了極大的恐慌响禽,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件荚醒,死亡現(xiàn)場離奇詭異芋类,居然都是意外死亡,警方通過查閱死者的電腦和手機界阁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進店門侯繁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人泡躯,你說我怎么就攤上這事贮竟。” “怎么了较剃?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵咕别,是天一觀的道長。 經(jīng)常有香客問我写穴,道長惰拱,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任啊送,我火速辦了婚禮偿短,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘馋没。我一直安慰自己昔逗,他們只是感情好,可當我...
    茶點故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布披泪。 她就那樣靜靜地躺著纤子,像睡著了一般搬瑰。 火紅的嫁衣襯著肌膚如雪款票。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天泽论,我揣著相機與錄音艾少,去河邊找鬼。 笑死翼悴,一個胖子當著我的面吹牛缚够,可吹牛的內(nèi)容都是我干的幔妨。 我是一名探鬼主播,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼谍椅,長吁一口氣:“原來是場噩夢啊……” “哼误堡!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起雏吭,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤锁施,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后杖们,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體悉抵,經(jīng)...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年摘完,在試婚紗的時候發(fā)現(xiàn)自己被綠了姥饰。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,102評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡孝治,死狀恐怖列粪,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情谈飒,我是刑警寧澤篱竭,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站步绸,受9級特大地震影響掺逼,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜瓤介,卻給世界環(huán)境...
    茶點故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一吕喘、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧刑桑,春花似錦氯质、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至琢锋,卻和暖如春辕漂,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背吴超。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工钉嘹, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人鲸阻。 一個月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓跋涣,卻偏偏與公主長得像缨睡,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子陈辱,可洞房花燭夜當晚...
    茶點故事閱讀 45,044評論 2 355

推薦閱讀更多精彩內(nèi)容