matlab置乱图像复原

matlab置乱图像复原functionb=modifyImage(flower)a=imread('D:\Backup\我的文档\MATLAB\flower.jpg')... matlab置乱图像复原
function b=modifyImage(flower)
a=imread('D:\Backup\我的文档\MATLAB\flower.jpg');
T=1;
b=a;
figure;
imshow(b);
while T<13
for x=1:size(a,1)
for y=1:size(a,2)
x1=mod(x+y,size(a,1));
y1=mod(x+2*y,size(a,2));
temp(x1+1,y1+1)=a(x,y);
end
end
a=temp;
T=T+1;
end
figure;
imshow(a);

怎么还原啊
展开
 我来答
MeChess
2010-07-26 · TA获得超过1538个赞
知道小有建树答主
回答量:448
采纳率:100%
帮助的人:616万
展开全部
首先,你恢复后的图像就是imshow(b),所以没必要做复原。如果只知道imshow(a);那么根据你的算法也无法进行复原,因为你置乱的算法不具有可逆性。
有兴趣你可以通过数据方法证明:即对矩阵中的元素取余具有不可逆性。
举一个简单的例子:
mod(5,3)=2 %5对3取余
那么当你知道2和3怎么得到5呢?答案是不可能,因为你可以得到5,8,11.....你不知道哪个才是你真正要的答案。
求雅韵Fv
2010-07-22 · TA获得超过412个赞
知道小有建树答主
回答量:135
采纳率:100%
帮助的人:223万
展开全部
ps:本人不是学图像处理的,可能见解不是很正确。

变换的核心在:
x1=mod(x+y,size(a,1));
y1=mod(x+2*y,size(a,2));
类似坐标变换
x1=x+y;
y1=x+2*y;
求出改变换的逆变换应该会有点帮助。逆变换为:
x=2*x1-y1;
y=-x1+y1;
按照相同的操作变化就行了。

变换程序如下:
function modifyImage_again
a=imread('D:\我的文档\logo_modif.jpg');
T=1;
b=a;
figure;
imshow(b);
while T<13
for x=1:size(a,1)
for y=1:size(a,2)
x1=mod(2*x-y,size(a,1));
y1=mod(-x+y,size(a,2));
temp(x1+1,y1+1)=a(x,y);
end
end
a=temp;
T=T+1;
end
figure;
imshow(a);
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
创作者Cq7QXuPhzs
2019-12-31 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:25%
帮助的人:1037万
展开全部
f=checkerboard(8);
%读图像
psf=fspecial('gaussian',7,10);
%高斯核
sd=0.01;%噪声标准差
g=imnoise(imfilter(f,psf),'gaussian',0,sd^2);%图像中加入模糊核噪声
subplot(3,2,1);%三子图第一张
imshow(f),title('(a)');%画原图
subplot(3,2,2);%三子图第二张
imshow(g),title('(b)');%画降质图像
dampar=10*sd;%去模糊参数
lim=ceil(size(psf,1)/2);%坐标缩影
weight=zeros(size(g));%去模糊权重初始化
weight(lim+1:end-lim,lim+1:end-lim)=1;%去模糊权重赋值
numit=5;%迭代次数
f5=deconvlucy(g,psf,numit,dampar,weight);%去模糊
subplot(3,2,3);%三子图第三张
imshow(f5),title('(c)');%画复原图像
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式