首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >转换代码以获取RGB图像而不是灰度

转换代码以获取RGB图像而不是灰度
EN

Stack Overflow用户
提问于 2014-04-23 21:17:19
回答 1查看 299关注 0票数 0

我有这样的代码,将鱼眼图像转换成矩形,但是代码只能在灰度图像上执行这个操作。有人能帮助转换代码来执行RGB映像上的操作吗?守则如下:

编辑:我已经更新了代码,以包含一个功能,执行插值在每个颜色通道。但这似乎改变了输出图像。见下图

代码语言:javascript
复制
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

解决了

输入图像 <-图像链接

灰度输出,我想要的颜色 <-图像链接

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-23 21:42:42

试着改变这三行:

代码语言:javascript
复制
[Mr Nr] = size(imR); % size of rectangular image
...
imP = zeros(M, N);
...
imP = interp2(imR, xR, yR); %interpolate (imR, xR, yR);

...to这些:

代码语言:javascript
复制
[Mr Nr Pr] = size(imR); % size of rectangular image
...
imP = zeros(M, N, Pr);
...
for dim = 1:Pr
    imP(:,:,dim) = interp2(imR(:,:,dim), xR, yR); %interpolate (imR, xR, yR);
end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23255344

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档