1. 程式人生 > >matlab影象縮放下的解析度加強

matlab影象縮放下的解析度加強

matlab影象解析度加強

  1. 影象解析度增強
    影象縮放的縮小並不改變原始影象解析度的操作叫做影象解析度的增強(英文也叫resolution intensity)是數字影象處理中的一個小技巧。本博文將展示一個有趣的影象縮放下解析度加強的例子。本博文將先粘貼出效果圖,再給出其matlab程式碼實現。
  2. 影象解析度增強效果圖影象解析度加強效果圖
  3. matlab程式碼實現
% 清理螢幕,清理變數,關閉所有視窗
clc; clear; close all
A = imread('rose.jpg');
imshow(A)
m=zeros(5,1);
n=zeros(5,1);
[m(1),n(1),k]=size(A);
for i=2:5
    m(i)=ceil(m(i-1)/2); %向上取整
    n(i)=ceil(n(i-1)/2);
end
B = zeros(m(1),n(1)*5+40,3)+255;
B = uint8(B);
B(:,1:n(1),:) = A;
%源程式錯誤,直覺告訴我對比B的寫法,將C = zeros(m,sum(n(1:5))+40,3)+255;中的m換為m(1)
C = zeros(m(1),sum(n(1:5))+40,3)+255;
C = uint8(C);
C(1:m(1),1:n(1),:)=A;
for i = 2:5
    TempA = A(1:2^(i-1):end,1:2^(i-1):end,:);
    B1 = imresize(TempA,2^(i-1));
    B1(m(1)+1:end,:,:)=[];
    B1(:,n(1)+1:end,:)=[];
    B(:,(n(1)+10)*(i-1)+1:(i-1)*10+n(1)*i,:)=B1;
    C(1:m(i),10*(i-1)+1+sum(n(1:i-1)):10*(i-1)+sum(n(1:i)),:)=TempA;
end
figure,imshow(B)
axis off
figure,imshow(C)
axis off