我有一個灰度圖像,需要提高其分辨率。這怎麼能在MATLAB中完成?它主要是通過乘以圖像的尺寸來完成的嗎?增加灰度圖像的分辨率
-6
A
回答
2
您需要執行插值。有很多方法可以做到這一點。使用imresize
(例如imgOut=imresize(img,scale,method);
),或者如果你沒有圖像處理工具箱,考慮下面的代碼:
function imres = resizeim(I,outsize,interpalg)
if nargin<3 || isempty(interpalg),
interpalg='cubic';
end
rows=outsize(1);
cols=outsize(2);
vscale = size(I,1)/rows;
hscale = size(I,2)/cols;
imgClass = class(I);
imres = interp2(double(I), (1:cols)*hscale + 0.5 * (1 - hscale), ...
(1:rows)'*vscale + 0.5 * (1 - vscale), ...
interpalg);
imres = cast(imres,imgClass);
注:這是在艱難中起步。許多人需要執行預過濾或其他轉換。此外,此示例僅支持2D(灰度)圖像。對於RGB,可以對其進行調整以處理每個顏色平面,或者簡單地對每個平面進行循環處理。再次,這只是一個例子。
除邊緣處理外,這與關閉抗鋸齒的imresize
(即imresize(...,'Antialiasing',false)
)的結果相同。
關於邊緣處理,有關extrapval
參數的信息,請參閱interp2
的文檔。代碼變得很難看,但是您可以修補插值點(interp2
輸入)中的最小/最大元素以簡單地精確映射到邊緣,或者您可以使用NaN
代替extrapval
,並且可以使用imres
代替NaN
其鄰居等等。請注意,只需插入諸如linspace(1,size(I,1),rows)
之類的點將不會給帶來預期的比例變化。
1
您還可以通過對圖像進行傅里葉變換,對其進行零填充,傅立葉逆變換並獲取絕對值,從而執行正弦插值。
im_rz = abs(ifft2(padarray(fft2(im),[row_pad, col_pad])))
0
您可以「幻覺」高分辨率細節。參見例如格拉斯納等"Single image Super resolution" ICCV 2009
該算法的實現,可以發現here
相關問題
- 1. 在TCPDF中增加圖像分辨率
- 2. 圖像分辨率
- 3. 分辨率的圖像
- 4. 使用opencv增加圖像比例和最大化分辨率?
- 5. 加載高分辨率背景圖像
- 6. Away3D中增加Videotexture的分辨率
- 7. 更改圖像分辨率
- 8. iPhone圖像分辨率
- 9. 檢測圖像分辨率?
- 10. 尋找圖像分辨率?
- 11. drawInRect:圖像分辨率
- 12. 在R中增加向量分辨率
- 13. Graphite爲度量標準增加新的分辨率
- 14. 細分的灰度圖像
- 15. 同時支持高分辨率和低分辨率圖像
- 16. HTML:在低分辨率下渲染高分辨率圖像
- 17. 如何將高分辨率圖像轉換爲低分辨率圖像?
- 18. 使用jQuery切換高分辨率圖像和低分辨率圖像
- 19. 分享高分辨率圖像
- 20. WordPress的可怕的圖像分辨率
- 21. 劃分灰度圖像
- 22. 灰度圖像分析
- 23. 如何增加gif圖片的分辨率?
- 24. Matlab - 增加陣列中圖案的分辨率
- 25. Java庫來增加圖片的分辨率
- 26. 如何在不變形的情況下增加圖像的分辨率?
- 27. Android位圖失去圖像分辨率
- 28. Slick2d增加屏幕分辨率而不增加視野
- 29. 圖像處理中是否有分辨率增強濾鏡?
- 30. 來自PDF的高分辨率圖像