• 大小: 3.09MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-11-15
  • 语言: 其他
  • 标签:

资源简介

有时候图像中拍的海报,视频,文件等因为拍摄角度问题,结果在图像中显示为任意四边形。该程序提供了一种将这个任意四边形转换为矩形的方法

资源截图

代码片段和文件信息

%函数功能:中心投影变换。输入源图,源图中的任意四边形的4个点的坐标(左上,右上,左下,右下),以及输出图像的大小(高,宽)
function Imgback = m_PerspectiveTransformation(imgInpointLTpointRTpointLBpointRBoutHeithtoutWidth)
    [imgInHeightimgInWidthimgInDimension] = size(imgIn);
    %为了中心投影变换,需要将4个点转化为三个向量,具体看参考文献
    vector10 = pointLB - pointLT;
    vector01 = pointRT - pointLT;
    vector11 = pointRB - pointLT;
    %把vector11表示成vector10和vector01的线性组合,以使三个向量共面
    A = [vector10‘  vector01‘];
    B = vector11‘ ;
    S = A\B;
    a0 = S(1);
    a1 = S(2);
    
    
    %输出矩形
    Imgback = uint8(zeros(outHeithtoutWidthimgInDimension));
    
    
    %利用循环操作来对每个像素点赋值
    for heightLoop = 1:outHeitht
        for widthLoop = 1:outWidth
            %以下算法为参考文献中的公式表示
            x0 = heightLoop/outHeitht;
            x1 = widthLoop/outWidth;
            FenMu = a0+a1-1+(1-a1)*x0+(1-a0)*x1;            %分母
            y0 = a0*x0/FenMu;
            y1 = a1*x1/FenMu;
            
            %根据得到的参数找到对应的源图像中的坐标位置,并赋值
            coordInOri = y0*vector10 + y1*vector01 + pointLT;
            heightC = round(coordInOri(1));
            widthC = round(coordInOri(2));
                if (heightC > imgInHeight || heightC <= 0 || widthC >imgInWidth || widthC <=0 )
                    disp([‘m_PerspectiveTransformation超出范围‘ num2str(heightC) num2str(widthC)]);
                    pause();
                    return;
                end
            for dimentionLoop = 1:imgInDimension
                %使用最近邻域插值,使用高级插值方法效果会更好
                Imgback(heightLoopwidthLoopdimentionLoop) = imgIn(heightCwidthCdimentionLoop);
            end
        end
    end
    
    
%     figure; imshow(Imgback); title(‘投影变换的结果‘);

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件     3241588  2017-06-15 22:19  1.jpg
     文件        1921  2017-06-22 08:30  m_PerspectiveTransformation.m
     文件         298  2017-06-22 15:55  Test_perspectivetransformation.m
     文件         144  2017-07-07 20:01  说明.txt

评论

共有 条评论

相关资源