怎么用matlab改变图像的分辨率
I=imread('lena.jpg');imshow(I);fori=1:512forj=1:512R(i,j)=I(i,j);endendR1=R;fori=1:25...
I=imread('lena.jpg');
imshow(I);
for i=1:512
for j=1:512
R(i,j)=I(i,j);
end
end
R1=R;
for i=1:256
for j=1:512
R1(i*2,j)=R(i*2-1,j);
end
end
for i=1:512
for j=1:256
R1(i,j*2)=R(i,j*2-1);
end
end
figure;
imshow(R1);
这段代码中 for循环的内容如何理解,R1(i*2,j)=R(i*2-1,j);不明白。。。 展开
imshow(I);
for i=1:512
for j=1:512
R(i,j)=I(i,j);
end
end
R1=R;
for i=1:256
for j=1:512
R1(i*2,j)=R(i*2-1,j);
end
end
for i=1:512
for j=1:256
R1(i,j*2)=R(i,j*2-1);
end
end
figure;
imshow(R1);
这段代码中 for循环的内容如何理解,R1(i*2,j)=R(i*2-1,j);不明白。。。 展开
3个回答
展开全部
这个程序改变分辨率是在图像大小不变的情况下通过将邻近两行或者两列的像素值相等来实现的,
R1(i*2,j)=R(i*2-1,j);是将原图的奇数行的 像素值赋给欧偶数行
R1(i,j*2)=R(i,j*2-1);是将奇数列的像素值赋给偶数列,这样就实现了相邻行或列像素值相等,减小了分辨率,这个程序感觉还有点问题,但应该是这个思路
R1(i*2,j)=R(i*2-1,j);是将原图的奇数行的 像素值赋给欧偶数行
R1(i,j*2)=R(i,j*2-1);是将奇数列的像素值赋给偶数列,这样就实现了相邻行或列像素值相等,减小了分辨率,这个程序感觉还有点问题,但应该是这个思路
更多追问追答
追问
分辨率是单位尺寸长度内的象素数目
那么 虽然相邻行或列像素值相等,但是像素数目还是没有变化,为什么分辨率就减小了呢
追答
程序里面其实只给偶数行和列赋值了 奇数航和列是什么都没有的 分辨率指的是密度而非图像大小 所以相当于在同样尺寸上 像素数减少了一半 分辨率也降低了一半
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询