2
我具有尺寸1044 * 1408的圖像F
,它只有3整數值0,2和3收縮/調整圖像的大小沒有插值
我想將它縮小到360 * 480。現在我正在使用Z= cv2.resize(F,(480,380))
。但是Z
是內插的,它有許多獨特的值,不僅僅是0,2和3.我不能將內插值整理成最接近的整數,因爲我會得到一些1。
F
是從一個tif文件中讀取並操縱的,現在是一個ndarray。所以我不能使用PIL:F = F.resize((new_width, new_height))
,因爲F
不是從F = Image.open(*)
。
你想可能是重採樣圖像,而不是調整其大小的是什麼。既然你提到'ndarray',我假設你正在使用'numpy'。看看http://stackoverflow.com/questions/25876640/subsampling-every-nth-entry-in-a-numpy-array中的解決方案(「numpy slicing」)它將允許無插值的重採樣(子採樣)。 –
不應該CV_INTER_NN「內插」方法選擇原始像素值之一(與調整大小的像素位置距離最小的那個)? – Micka
是的設置'interpolation = cv2.INTER_NEAREST'可以讓你使用最接近的像素值。我可以使用'Z = cv2.resize(F,(480,380),interpolation = cv2.INTER_NEAREST)',只得到0,2和3.我想知道是否有任何方法根本不做插值 – Echo