TensorFlow函數(shù):tf.image.crop_and_resize

2018-05-23 11:53 更新

tf.image.crop_and_resize函數(shù)

tf.image.crop_and_resize(
    image,
    boxes,
    box_ind,
    crop_size,
    method='bilinear',
    extrapolation_value=0,
    name=None
)

請參閱指南:圖像操作>裁剪

從輸入圖像張量中提取crop(裁剪),并雙線調整它們的大小(可能高寬比變化)到由crop_size指定的通用輸出大小.這比從輸入圖像中提取固定大小切片并且不允許調整大小或寬高比變化的crop_to_bounding_box操作更普遍.

從輸入image中返回一個crops張量,位于boxes的邊界框位置處定義的位置處.裁剪后的框都是調整大小(雙線性插值)為固定size = [crop_height, crop_width].結果是一個四維張量[num_boxes, crop_height, crop_width, depth].調整大小是角對齊.特別是,如果boxes = [[0, 0, 1, 1]],該方法將為使用 tf.image.resize_bilinear () 與 align_corners = True 提供相同的結果.

參數(shù):

  • image:一個Tensor,必須是下列類型之一:uint8,uint16,int8,int16,int32,int64,half,float32,float64,一個形狀為[batch, image_height, image_width, depth]的四維張量,image_height和image_width需要為正值.
  • boxes:一個類型為float32的Tensor,是形狀為[num_boxes, 4]的二維張量.張量的第i行指定box_ind[i]圖像中框的坐標,并且在標準化坐標中指定[y1, x1, y2, x2];標準化的坐標值y被映射到圖像坐標y * (image_height - 1)處,從而標準化圖像高度的[0, 1]間隔被映射到[0, image_height - 1]的圖像高度坐標中.我們允許y1> y2,在這種情況下,采樣的裁剪是原始圖像的上下翻轉版本.寬度維度的處理方式類似.[0, 1]范圍之外的標準化坐標是允許的,在這種情況下,我們使用extrapolation_value外推輸入圖像值.
  • box_ind:一個int32類型的Tensor;形狀為[num_boxes]的1維張量,在[0, batch)中具有int32值.該box_ind[i]值指定第i個方框要引用的圖像.
  • crop_size:一個int32類型的Tensor;一個2個元素的一維張量,size = [crop_height, crop_width].所有裁剪的圖像修補程序都調整為此大小.圖像內(nèi)容的寬高比不被保留;crop_height和crop_width需要為正值.
  • method:可選的string,其來自:"bilinear";默認為"bilinear";指定插值方法的字符串.現(xiàn)在只支持“雙線性(bilinear)”.
  • extrapolation_value:可選的float,默認為0,用于推斷的值(如果適用).
  • name:操作的名稱(可選).

返回值:

tf.image.crop_and_resize函數(shù)返回一個類型為float32的Tensor.

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號