0

魚眼画像を長方形に変換するこのコードがありますが、コードはグレースケール画像に対してのみこの操作を実行できます。コードを変換してRGB画像で操作を実行するのを手伝ってくれる人はいますか? コードは次のとおりです。

編集: 各カラー チャネルで補間を実行する機能を含むようにコードを更新しました。しかし、これは出力画像を変形させるようです。下の写真を参照してください

function imP = FISHCOLOR (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;

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; 

imP =zeros(M, N);              % initialize the final matrix
 for k=1:3 % colors
    T = imR(:,:,k);
     Ichannel = interp2(T,xR,yR);
     imP(:,:,k)= Ichannel;          % add k channel
 end

解決した

入力画像 ←画像リンク

グレースケール出力、カラーで欲しいもの<- 画像リンク

4

1 に答える 1