我有一些代碼需要魚眼圖像並將其轉換爲每個RGB通道中的矩形圖像。我遇到了輸出圖像是方形而不是矩形的問題。 (這意味着圖像失真,水平壓縮。)我試圖將輸出矩陣更改爲更合適的格式,但沒有成功。除此之外,我還發現代碼工作的輸入圖像必須是像500x500一樣的方形。任何想法如何解決這個問題?這是代碼:改變內插RGB圖像的圖像寬高比。正方形到長方形
該代碼的靈感來自Prakash Manandhar「極地/從矩形變換圖像」文件交換在mathworks。
編輯。代碼現在可用。
function imP = FISHCOLOR2(imR)
rMin=0.1;
rMax=1;
[Mr, Nr, Dr] = size(imR); % size of rectangular image
xRc = (Mr+1)/2; % co-ordinates of the center of the image
yRc = (Nr+1)/2;
sx = (Mr-1)/2; % scale factors
sy = (Nr-1)/2;
reduced_dim = min(size(imR,1),size(imR,2));
imR = imresize(imR,[reduced_dim reduced_dim]);
M=size(imR,1);N=size(imR,2);
dr = (rMax - rMin)/(M-1);
dth = 2*pi/N;
r=rMin:dr:rMin+(M-1)*dr;
th=(0:dth:(N-1)*dth)';
[r,th]=meshgrid(r,th);
x=r.*cos(th);
y=r.*sin(th);
xR = x*sx + xRc;
yR = y*sy + yRc;
for k=1:Dr % colors
imP(:,:,k) = interp2(imR(:,:,k), xR, yR); % add k channel
end
imP = imresize(imP,[size(imP,1), size(imP,2)/3]);
imP = imrotate(imP,270);
解決
Input image < - 圖片鏈接
Output image < - 圖片鏈接
非常感謝你,這真的很好:) –
@KristianMoesgaard非常有趣的項目,我必須說,我很想張貼一些結果。看** B部分**進行一些編輯。爲什麼不將其作爲文件交換代碼發佈,如果其他人尚未完成? – Divakar
我可能會這樣做。我其實也有興趣將輸入圖像映射爲緯度經度圖像。你有沒有想過如何去做? :) –