[求助]happy,请再进来帮忙解答一下,谢啦
一般imresize函数调用时都会用到默认或者自定义插值法,怎样才能放大图像而不用到任何插值法呢?您上次教的用二维插值法实现图像三次样条插值<br>q=2;<br>I=imread('moon.tif');<br>J=double(I);<br>=size(j);<br>=meshgrid(1:n,1:m);<br>=meshgrid(1:1./q:n,1:1./q:m);<br>A1(:,:,1)=interp2(x,y,J(:,:,1),xi,yi,'spline');<br>A1(:,:,2)=interp2(x,y,J(:,:,2),xi,yi,'spline');<br>A1(:,:,3)=interp2(x,y,J(:,:,3),xi,yi,'spline');<br>可是之后如何只是放大而不要matlab调用其它插值法呢?还有为什么执行上面语句时matlab会提示超出矩阵范围,谢谢!![此贴子已经被作者于2006-4-17 22:07:44编辑过]
回复:(yuyukiki)[求助]happy,请帮忙如何放大图像而...
不能不用到插值,在图像是像素的形式存储的<BR>放大的话就相当于像素点增加,不用插值你增加的像素怎么来?<BR>随便给?还是凭空多出来?所以不可能啊<BR><BR>超出矩阵范围那是因为你原来的图片太大,或者你给出的放大倍数太大了回复:(happy)回复:(yuyukiki)[求助]happy,请帮...
<P>可是你上次给的程序里的double不是将图像像素值提升到双精度吗?还是放大啊?如果按它来运行,输出的是一幅放大但不清楚只有黑白颗粒的图片,而且如果我要放大3 或4或其它倍数那怎么办?因为据我的理解,程序里只有像素间插值,并无放大语句啊</P>回复:(yuyukiki)[求助]happy,请再进来帮忙解答一下...
你没有unit当然显示有问题了<br>clear;<br>q=3;<br>I=imread('abc5.jpg');<br>J=double(I);<br>=size(J);<br>=meshgrid(1:n,1:m);<br>=meshgrid(1:1./q:n,1:1./q:m);<br>A1(:,:,1)=interp2(x,y,J(:,:,1),xi,yi,'spline');<br>A1(:,:,2)=interp2(x,y,J(:,:,2),xi,yi,'spline');<br>A1(:,:,3)=interp2(x,y,J(:,:,3),xi,yi,'spline');<br>A=uint8(A1);<br>imshow(A);<br><br>另外你说的过大问题是不是Warning: Image is too big to fit on screen;<br>这个不用理他,只是显示的时候它自动给你处理了一下而已,对内部的结果没有影响 <br>[此贴子已经被作者于2006-4-18 8:46:00编辑过]
回复:(happy)回复:(yuyukiki)[求助]happy,请再...
<DIV class=quote><B>以下是引用<I>happy</I>在2006-4-18 8:41:35的发言:</B><BR>你没有unit当然显示有问题了<BR>clear;<BR>q=3;<BR>I=imread('abc5.jpg');<BR>J=double(I);<BR>=size(J);<BR>=meshgrid(1:n,1:m);<BR>=meshgrid(1:1./q:n,1:1./q:m);<BR>A1(:,:,1)=interp2(x,y,J(:,:,1),xi,yi,'spline');<BR>A1(:,:,2)=interp2(x,y,J(:,:,2),xi,yi,'spline');<BR>A1(:,:,3)=interp2(x,y,J(:,:,3),xi,yi,'spline');<BR>A=uint8(A1);<BR>imshow(A);<BR><BR>另外你说的过大问题是不是Warning: Image is too big to fit on screen;<BR>这个不用理他,只是显示的时候它自动给你处理了一下而已,对内部的结果没有影响 <BR><BR></DIV><P>还是不行啊,错误是??? Index exceeds matrix dimensions</P>
回复:(yuyukiki)[求助]happy,请再进来帮忙解答一下...
这段代码我试过的,没有问题
页:
[1]