2011-06-02 61 views
5

假設我想在程序中包含圖像放大/縮小算法。執行時間並不重要,結果「質量」是。在這種情況下,您如何定義「質量」,然後如何從可用選擇中選擇最佳算法?如何比較兩種圖像縮放算法的「質量」?


在一個側面說明,如果這是太一般了,爲此我試圖找到一個解決的根本問題是這樣的:假設我有很多,我需要高檔的在運行時圖像(實際上是一個視頻)。我可以對它們進行預處理,並用慢速和高質量的算法對它們進行高級處理,但我不知道最終的解決方案(好吧,人們終究有不同的監視器),所以我無法立即調整大小。如果我用我的高質量算法對它進行一些放大,然後讓播放器在運行時將其進一步升級爲必要的分辨率(使用快速但質量較低的算法),會有好處嗎?或者我應該保留原始視頻,並在運行時一次性完成所有的升級?

回答

1

真正客觀地判斷質量的唯一方法是做一些(半)的科學研究。招募幾名參與者。以隨機順序向他們展示放大的圖像,並讓他們對主觀質量進行排序(雙盲進行的加分)。然後,您平均分數並選擇平均得分最高的算法(也許測試統計顯着性)。

您需要確保您測試的圖像能夠代表您正在使用的實際圖像的代表性樣本。如果您正在爲視頻製作視頻,那麼使用短視頻剪輯作爲測試圖像而不是靜止圖像可能是一個好主意,因爲我懷疑人們會認爲這兩個視頻的質量不同。

如果您不關心嚴謹性,那麼您可以僅將自己作爲測試對象進行測試。

至於做一個初步prescaling,我的猜測是,它不值得。從較大的圖像擴大規模不應該比從較小的原始規模擴大那麼便宜,而且我希望它比通過方便的因素(如2x)擴展更昂貴。但是,不要拿我的話......測試!