MATLAB图像处理imrotate

来源:百度知道 编辑:UC知道 时间:2024/05/24 17:01:51
imrotate旋转图像,旋转过后底面是黑色的,如何变成白色的呢??
苦求各位大侠!!
看来是没人回答了 谢谢楼下捧场

这个问题比较难啊,没有弄出来,希望大侠过来看看

I=imcomplement(I);%将原图反色
Im=imrotate(I,0.5,'crop');%旋转一定角度
Im=imcomplement(Im);%将图像反色回来
就可以了。

如果中间的图像没有黑色的点,就很简单了,直接用find(a==0)找到黑色的点的坐标,赋白就行。如果中间图有黑色,我写了个函数,可以把底面赋白,这程序其实不难,就是扫描赋值。
function [r]=back2white(a)
[in,jn]=size(a);
for i=1:3%先把“镜框”赋白,因为里边那个矩形没紧贴外框
for j=1:jn
if a(i,j)~=255
a(i,j)=255;
end
if a(in+1-i,j)~=255
a(in+1-i,j)=255;
end

end
for j=1:in%两竖边赋白
if a(j,i)~=255
a(j,i)=255;
end
if a(j,jn+1-i)~=255
a(j,jn+1-i)=255;
end
end
end
for i=4:in-3
j=4;
while(a(i,j)<250)%此处选250为了保险
a(i,j)=255;
j=j+1;
end
k=jn-3;
while(a(i,k)<250)
a(i,k)=255;
k=k-1;
end
end

r=a;
PR(r);

看情