我試圖扭曲16位衛星圖像。我有全色圖像。我的參考圖像是8192x81920像素,紅色通道圖像是4096x40960像素。當我使用warpAffine
或warpPerspective
時,行值大於32767的像素不會被正確扭曲。這是一個簡單的錯誤?我可以通過更改變量類型來糾正它嗎?warpPerspective和warpAffine不適用於大圖像,高度> 32k
我已檢查warpPerspectiveInvoker
功能,但看不到一個簡單的修復。
我試圖扭曲16位衛星圖像。我有全色圖像。我的參考圖像是8192x81920像素,紅色通道圖像是4096x40960像素。當我使用warpAffine
或warpPerspective
時,行值大於32767的像素不會被正確扭曲。這是一個簡單的錯誤?我可以通過更改變量類型來糾正它嗎?warpPerspective和warpAffine不適用於大圖像,高度> 32k
我已檢查warpPerspectiveInvoker
功能,但看不到一個簡單的修復。
目前,我將圖像分爲32k大小的圖塊,並將每個獨立的圖塊捲曲。 目前我的數據結果似乎是合理的。
這看起來是OpenCV中的open bug。 cv::warpPerspective()
在內部使用short
來生成失真映射。 32767是short
中的最大可表示值,因此任何大於此值都會導致問題。
您可以嘗試駭客warpPerspectiveInvoker
並用更大的東西替換short
實例,例如int
,但我無法保證這可行。不過,這可能值得一試。
「不工作」是什麼意思?請明確點。你的電腦有多少內存? –
您可以發佈您用來扭曲圖像的代碼嗎?並可能鏈接到示例輸出? (我可以將它編輯成你的問題) – Aurelius