3

在PIL最高質量從我所看到的調整似乎是:openCV相當於PIL調整ANTIALIAS?

img = img.resize((n1, n2), Image.ANTIALIAS) 

對於OpenCV的,這似乎是做到這一點的方式:

small = cv2.resize(image, (0,0), fx=0.5, fy=0.5) 

所以我的問題是,還需要一個額外的參數還是會減少最小質量損失的尺寸?

回答

3

documentation

要縮小圖像,它通常會尋找最好CV_INTER_AREA插值,而放大的圖像,它通常會尋找最好CV_INTER_CUBIC(慢)或CV_INTER_LINEAR(速度較快,但仍看起來確定)。

調整大小的默認值是CV_INTER_LINEAR。更改插值CV_INTER_AREA因爲要縮小圖像:

small = cv2.resize(image, (0,0), fx=0.5, fy=0.5, interpolation = cv2.INTER_AREA) 

你不妨比較兩種插值的視覺驗證您得到最優質的結果。

+0

我實際上會做縮小和擴大圖像。它必須是一個確切的大小,如果不是,我需要調整它的大小。所以我得到的是CV_INTER_LINEAR速度更快,縮小尺寸的標準,但是CV_INTER_AREA應該用於增加尺寸?我需要最高的質量。 你知道INTER_AREA有多慢嗎? – alfredox

+0

@alfredox在討論質量時,INTER_AREA是使圖像更小的最佳選擇。 INTER_CUBIC使圖像更大。 INTER_LINEAR似乎是最快的。我想你可以做一些性能測試來比較每個插值 - 我自己並沒有這樣做。調整大小可能是昂貴的(性能方面)。 – chembrad

+0

好吧,我會研究它,然後,謝謝 – alfredox