• MATLAB 图像放大/缩小,双线性插值


    半年前写过matlab最邻近插值的图像缩放,没怎么考虑边界问题。更早之前用Opencv写过双线性插值图像放大,不过写的比较混乱。所以这里用matlab重新再清楚的写一遍。

     1 close all;
     2 clear all;
     3 clc;
     4 
     5 m=1.8;              %放大或缩小的高度
     6 n=2.3;              %放大或缩小的宽度
     7 img=imread('lena.jpg');
     8 imshow(img);
     9 [h w]=size(img);
    10 imgn=zeros(h*m,w*n);
    11 rot=[m 0 0;0 n 0;0 0 1];                                   %变换矩阵for i=1:h*m
    12     for j=1:w*n
    13         pix=[i j 1]/rot;   
    14         
    15         float_Y=pix(1)-floor(pix(1)); 
    16         float_X=pix(2)-floor(pix(2));
    17        
    18         if pix(1) < 1        %边界处理
    19             pix(1) = 1;
    20         end
    21         
    22         if pix(1) > h
    23             pix(1) = h;
    24         end
    25         
    26         if pix(2) < 1
    27             pix(2) =1;
    28         end
    29         
    30         if pix(2) > w
    31             pix(2) =w;
    32         end
    33         
    34         pix_up_left=[floor(pix(1)) floor(pix(2))];    %四个相邻的点
    35         pix_up_right=[floor(pix(1)) ceil(pix(2))];
    36         pix_down_left=[ceil(pix(1)) floor(pix(2))];
    37         pix_down_right=[ceil(pix(1)) ceil(pix(2))];     
    38     
    39         value_up_left=(1-float_X)*(1-float_Y);      %计算临近四个点的权重
    40         value_up_right=float_X*(1-float_Y);
    41         value_down_left=(1-float_X)*float_Y;
    42         value_down_right=float_X*float_Y;
    43                                     %按权重进行双线性插值
    44         imgn(i,j)=value_up_left*img(pix_up_left(1),pix_up_left(2))+ ...
    45                   value_up_right*img(pix_up_right(1),pix_up_right(2))+ ...
    46                   value_down_left*img(pix_down_left(1),pix_down_left(2))+ ...
    47                   value_down_right*img(pix_down_right(1),pix_down_right(2));        
    48     end
    49 end
    50 
    51 figure,imshow(uint8(imgn))

    原图

     放大后的。

  • 相关阅读:
    CSS学习笔记之(1):文档流、块级元素、内联元素
    java nio纯理论
    CSS权重计算
    JS闭包(转载)
    [Journal]我是如何DIY博客的
    [CodeForces]Codeforces Round #428 (Div. 2)
    [Data Structure][线段树]BZOJ3211 花神游历各国
    [Journal]有一种感动叫ACM——记WJMZBMR在成都赛区开幕式上的讲话
    美团面试失败(Java开发)
    继承的初始化过程
  • 原文地址:https://www.cnblogs.com/ybqjymy/p/13646115.html
Copyright © 2020-2023  润新知