精华内容
下载资源
问答
  • matlab多幅图像拼接
    2021-04-27 03:04:05

    多幅图像拼接matlab实现拼接

    matlab

    2020-10-25

    下载地址

    https://www.codedown123.com/45723.html

    多幅图像拼接matlab实现 sift特征提取、描述、匹配、RANSAC、仿射变换

    资源下载此资源下载价格为2D币,请先登录

    资源文件列表

    PA1/.DS_Store , 12292

    PA1/alternate template for LaTeX users/cvpr.sty , 8435

    PA1/alternate template for LaTeX users/yourSUNetID_PA1.tex , 10285

    PA1/checkpoint/Affine_ref.mat , 207

    PA1/checkpoint/Match_input.mat , 987133

    PA1/checkpoint/Match_ref.mat , 255

    PA1/checkpoint/SIFT_ref.mat , 76813

    PA1/ComputeAffineMatrix.m , 2387

    PA1/data/campus_000.jpg , 64410

    PA1/data/campus_001.jpg , 52963

    PA1/data/campus_002.jpg , 36253

    PA1/data/campus_003.jpg , 39294

    PA1/data/campus_004.jpg , 57098

    PA1/data/pine1.jpg , 108679

    PA1/data/pine2.jpg , 128952

    PA1/data/pine3.jpg , 126069

    PA1/data/pine4.jpg , 120636

    PA1/data/trees_000.jpg , 195037

    PA1/data/trees_001.jpg , 230526

    PA1/data/trees_002.jpg , 253284

    PA1/data/trees_003.jpg , 267269

    PA1/data/uttower1.jpg , 39785

    PA1/data/uttower2.jpg , 39568

    PA1/data/uttower2_bad.jpg , 38794

    PA1/data/uttower2_scaledup.jpg , 169535

    PA1/data/yard1.jpg , 21755

    PA1/data/yard2.jpg , 19016

    PA1/data/yard3.jpg , 15919

    PA1/data/yard4.jpg , 14347

    PA1/data/yosemite1.jpg , 203176

    PA1/data/yosemite2.jpg , 199756

    PA1/data/yosemite3.jpg , 183602

    PA1/data/yosemite4.jpg , 253504

    PA1/EvaluateAffineMatrix.m , 687

    PA1/EvaluateSIFTDescriptor.m , 720

    PA1/EvaluateSIFTMatcher.m , 576

    PA1/KeypointDetect/affine.m , 1093

    PA1/KeypointDetect/build_pyramid.m , 2054

    PA1/KeypointDetect/construct_key.m , 817

    PA1/KeypointDetect/detect_features.m , 3458

    PA1/KeypointDetect/drawbox.m , 244

    PA1/KeypointDetect/eliminate_edges.m , 137

    PA1/KeypointDetect/filter_gaussian.m , 1539

    PA1/KeypointDetect/filter_laplacian.m , 1803

    PA1/KeypointDetect/find_extrema.m , 2761

    PA1/KeypointDetect/find_features.m , 6216

    PA1/KeypointDetect/fit_parabola.m , 119

    PA1/KeypointDetect/fit_paraboloid.m , 432

    PA1/KeypointDetect/fmransac_test2.m , 7004

    PA1/KeypointDetect/f_class.m , 397

    PA1/KeypointDetect/gauss1d.m , 236

    PA1/KeypointDetect/gauss2dx.m , 573

    PA1/KeypointDetect/generate_parta_comparisons.m , 406

    PA1/KeypointDetect/getpts.m , 6081

    PA1/KeypointDetect/get_dvtime.m , 615

    PA1/KeypointDetect/interp.m , 408

    PA1/KeypointDetect/kill_edges.m , 170

    PA1/KeypointDetect/make_cost.m , 227

    PA1/KeypointDetect/match_dv_odometry.m , 392

    PA1/KeypointDetect/motion_corr.m , 6466

    PA1/KeypointDetect/motion_corr2.m , 4570

    PA1/KeypointDetect/mv2.m , 166

    PA1/KeypointDetect/plotpoints.m , 1035

    PA1/KeypointDetect/plot_matched.m , 718

    PA1/KeypointDetect/process_loop.m , 283

    PA1/KeypointDetect/refine_features.m , 8948

    PA1/KeypointDetect/resample_bilinear.m , 1248

    PA1/KeypointDetect/showfeatures.m , 1487

    PA1/KeypointDetect/show_plist.m , 194

    PA1/KeypointDetect/show_points.m , 97

    PA1/KeypointDetect/structure2.m , 678

    PA1/KeypointDetect/symmetric_match.m , 975

    PA1/least_squares_handout.pdf , 110129

    PA1/lecture_panorama.pdf , 1286882

    PA1/MatcherTester.m , 651

    PA1/MultipleStitch.m , 7906

    PA1/PA1.pdf , 1269194

    PA1/PairStitch.m , 2005

    PA1/PlotMatch.m , 10216

    PA1/PlotSIFTDescriptor.m , 4333

    PA1/RANSACFit.m , 5248

    PA1/SIFT paper.pdf , 455074

    PA1/SIFTDescriptor.m , 17189

    PA1/SIFTSimpleMatcher.m , 2444

    PA1/SIFTTester.m , 514

    PA1/StitchTester.m , 1969

    PA1/TransformationTester.m , 1109

    PA1/Untitled.m , 52

    PA1/uttower_pano.jpg , 145377

    PA1/yosemite.jpg , 200625

    PA1/yourSUNetID_PA1.doc , 48128

    更多相关内容
  • 多幅图像拼接matlab实现 sift特征提取、描述、匹配、RANSAC、仿射变换 多幅图像拼接matlab实现 sift特征提取、描述、匹配、RANSAC、仿射变换
  • 多幅图像拼接matlab实现 源码下载

    千次下载 热门讨论 2017-03-06 14:33:20
    多幅图像拼接matlab实现 sift特征提取、描述、匹配、RANSAC、仿射变换
  • 多幅图像拼接matlab实现源代码下载 多幅图像拼接matlab实现 sift特征提取、描述、匹配、RANSAC、仿射变换
  • some image matching and mosaic
  • MATLAB图像拼接

    千次阅读 2021-08-25 11:58:33
    MATLAB图像拼接一、实验原理及实验结果图像拼接就是将一系列针对同一场景的有重叠部分的图片拼接成整幅图像,使拼接后的图像最大程度地与原始场景接近,图像失真尽可能小。基于SIFT算法则能够对图像旋转、尺度缩放、...

    MATLAB图像拼接

    一、实验原理及实验结果

    图像拼接就是将一系列针对同一场景的有重叠部分的图片拼接成整幅图像,使拼接后的图像最大程度地与原始场景接近,图像失真尽可能小。基于SIFT算法则能够对图像旋转、尺度缩放、亮度变化保持不变性,对视角变化,仿射变换,噪声也能保持一定程度的稳定性。本次实验运用SIFT匹配算法来提取图像的特征点,采用随机抽样一致性算法求解单应性矩阵并剔除错误的匹配对。最后用加权平均融合法将两帧图像进行拼接。具体过程为:首先选取具有重叠区域的两帧图像分别作为参考图像和待拼接图像,然后使用特征提取算法提取特征点,并计算特征点描述子,根据描述子的相似程度确定互相匹配的特征点对。再根据特征点对计算出待拼接图像相对于参考图像的单应性矩阵,并运用该矩阵对待拼接图像进行变换,最后将两帧图像进行融合,得到拼接后的图像。

    1.特征点检测与匹配

    特征点检测与匹配中的尺度空间理论的主要思想就是利用高斯核对原始图像进行尺度变换,获得图像多尺度下的尺度空间表示序列,再对这些序列就行尺度空间的特征提取。

    二维的高斯核定义为:

    v2-af0de500f7a09acffc4b540686671c7c_b.jpg

    v2-11d9405a865129b85835e3ba79884f5b_b.jpg

    SIFT算法将图像金字塔引入了尺度空间,首先采用不同尺度因子的高斯核对图像进行卷积以得到图像的不同尺度空间,将这一组图像作为金字塔图像的第一阶。接着对其中的2倍尺度图像(相对于该阶第一幅图像的2倍尺度)以2倍像素距离进行下采样来得到金字塔图像第二阶的第一幅图像,对该图像采用不同尺度因子的高斯核进行卷积,以获得金字塔图像第二阶的一组图像。再以金字塔图像第二阶中的2倍尺度图像以2倍像素距离进行下采样来得到金字塔图像第三阶的第一幅图像,对该图像采用不同尺度因子的高斯核进行卷积,以获得金字塔图像第三阶的一组图像。这样依次类推,从而获得了高斯金字塔图像。每一阶相邻的高斯图像相减,就得到了高斯差分图像,即DOG图像。对DOG尺度空间每个点与相邻尺度和相邻位置的点逐个进行比较,得到的局部极值位置即为特征点所处的位置和对应的尺度。

    为了寻找尺度空间的极值点,DOG尺度空间中中间层的每个像素点都需要跟同一层的相邻8个像素点以及它上一层和下一层的9个相邻像素点总共26个相邻像素点进行比较,以确保在尺度空间和二维图像空间都检测到局部极值。图像的高斯滤波保证了特征点不受噪声影响,DOG图像保证了特征点不受亮度差的影响,在高斯差分图像空间提取极值点保证了尺度不变性。

    剔除不好特征点时,利用高斯差分算子检测到的特征点中,含有一些低对比度的特征点和不稳定的边缘特征点,需要进行剔除。使用泰勒级数将尺度空间方程

    v2-12a155b0b3a812d1fd9af3d192f71ffb_b.png

    展开:


    v2-1d99f1adbce5551dd4c0cc2f358dd947_b.jpg

    其中

    v2-f17cde325ab2f47c0c8084b4c1c4262e_b.jpg

    分别为一阶和二级偏导数矩阵。式中的一阶和二阶导数可以通过附近区域的差分近似求得,求导并令其为零得出精确的极值位置

    v2-223d2644111ef7f490d0c5d464c206af_b.jpg


    则有

    v2-2c3c68964e86b066b96a4271ef6b3170_b.jpg

    如果

    v2-14cba0603db4dc71b4abdf40c4c71ace_b.png

    ,则保留该特征点,否则就丢弃。

    为了去除不稳定的边缘特征点,可以获取特征点处的Hessian矩阵,主曲率可以通过一个2x2

    的Hessian矩阵H求出:

    v2-90c2a2f53e31cd8c25c47742aaa14d84_b.jpg

    通过对阈值的设定,可以将两帧图像中没有匹配点的特征点去掉,只留下匹配的特征点对。

    实验采用MATLAB编程,分别对一组交大图书馆的图像以及一组标准库中的图像进行特征点提取与匹配,结果如下图。


    v2-b55541af5dcc330b4db673d0a7e129a3_b.jpg

    v2-83806f236bb1e4f2ede48ab9f38bc1e2_b.jpg

    v2-b8484b171091ad667161a90ac6d84abf_b.jpg

    v2-7af74ef838b84d018767692b722cc9cf_b.jpg


    二、实验总结与分析

    实验中得到的特征点数据如下表所示:

    交大图书馆图像标准图像
    图像尺寸320*240575*576
    参考图像由SIFT所得的特征点数2661196
    待拼接图像由SIFT所得的特征点数2631345
    未利用RANSAC算法的特征点匹配对数96349
    利用RANSAC算法的特征点匹配对数87269

    由表格可以看出,SIFT算法可以有效地找到图像中的特征点,并能根据128维的特征描述符进行有效的粗匹配。而RANSAC能够在粗匹配的基础上有效地剔除匹配错误点,得到精确匹配的特征点对,为后续的图像的几何变换和拼接提供了基础。


    三、实验心得

    通过对本次实验的完成,我对图像拼接的研究有了直观的认识,这个过程充分锻炼了我分析问题的能力,对理论知识的学习能力以及编程解决实际问题的能力。我也学会了如何找出自己设计中的不足,继而去排除解决问题,这就是一个自我学习的过程。当我通过实验去学习理论知识时,自己动手得出的结论,不仅能加深我对图像拼接的理解,更能加深我对此的记忆。

    展开全文
  • 亲测好用,挺不错的资源,大家快来下载吧!挺有用的!需要的话可以来下载哦! 多幅图像拼接matlab实现 sift特征提取、描述、匹配、RANSAC、仿射变换
  • matlab 做的多幅图像拼接程序,实测可运行
  • 图像拼接matlab

    千次阅读 2021-05-26 18:35:46
    图像拼接声明网上的几种方法框图Coding我的一些认为一点展望 声明 这是我本科期间的数字图像处理大作业,存在一定的问题无法保证一定可以使用。 且此篇文章为我第一次在CSDN上发布,可能存在一定的问题。 同时由于是...

    声明

    这是我本科期间的数字图像处理大作业,存在一定的问题无法保证一定可以使用。
    且此篇文章为我第一次在CSDN上发布,可能存在一定的问题。
    同时由于是在本科期间的课程大作业,内容原创性比较少轻喷(主要是将网上的一些和图像拼接有关的内容进行一个整合,这次文章的发布仅为一次实验)。
    本篇文章会加入一些我自己的认为与理解,仅代表个人观点,轻喷。
    希望不会有啥维权的问题,如果出现本人会删除这篇文章。

    网上的几种方法

    1.SIFT
    2.Surf
    3.角点检测
    (网上的内容都挺详尽的,建议百度一下)

    框图

    写了个总的函数,加了点用户输入的部分。
    在这里插入图片描述

    在这里插入图片描述

    Surf:

    Alt

    Harris:
    alt

    Coding

    function  image_stitching(A,B,varargin)
    %@Author    ;HuangWeiChen
    %@Time      :2021/5/5
    
    
    % Input:
    % A :image 1
    % B : image 2
    % varargin: some parameter
    
    % Output:
    % output_image - combined new image
    
    %@Note  :
    %{
        1.No return ,show the combined image directly
        2.Without the GUI ,the function is stil working .
        Because I forget the gui so  I do this function better.
        That's the reason why has this function .
    
        The main.m is the test file maybe it is a reference,
        so i still save it.
    
    %}
    
    
    %@Power ;1. Detecting the input image is null or not.
    %           Detecting the image dimension is matching or not
    %          
    %         2.if the input is too big and the use choose the harris,
    %         it will run a long time ,so I detect the image size.
    %          When the size is bigger than 2000,I suggest the use to using
    %          SURF,so I wirte the input code . User choose YES
    %          -SURF,whether NO -just run the harris
    %         3. it will show the Corner point
    %
    %@TODO  :The SURF do only run with gray image. If you want to use 
    %    	 colorfully image,maybe bulid a new file.
    %       : harris is too slow!!!!!!!!!!!!!!!!!!!
    
    
    %%%%%%%%%%%%%%%%%%%%%%%%%
    %{
        %Sample:
    
    addpath('resource');
    addpath('Image');
    
    imagePath = 'Image\eyes';
    %first = 1;
    %second = 2;
    buildingScene = imageSet(imagePath);
    A = read(buildingScene, first);
    B= read(buildingScene, second);
    
    A = rgb2gray(A);
    B = rgb2gray(B);
    
    
    
    % These functions you can use (smile)
     
    image_stitching(A,B,'SURF');
    % image_stitching(A,B,'SURF','write');
    % image_stitching(A,B,'harris');
    % image_stitching(A,B);
    % image_stitching(A,B,'harris','write');
    % image_stitching(A,B,'harris','Corner');
    
    %}
    
    %%%%%%%%%%%%%%%%%%%%%%%%%
    
    
    
    %% detect input
    if isempty(A)
        error('the first image is empty!');
    elseif isempty(B)
        error('the second image is empty!');
    end
    
    
    
    Size_A =max(size(A));
    Size_B =max(size(B));
    
    dimension_A=numel(size(A));
    dimension_B = numel(size(B));
    
    if dimension_B *dimension_A~=9&&dimension_B *dimension_A~=4
        error('the input image dimension is not correct,they should have the same dimension');
    end
    
    %% image is too big
    times = 1;
    
    while(1)
        if times ==1
            if  Size_A>2000||Size_B>2000
                
                prompt={   'the image is too big,we think you should use SURF,  Yes   or   No'  };
                name='Warring';
                numlines=1;
                defaultanswer={'Yes'};
                
                options.Resize='on';
                options.WindowStyle='normal';
                options.Interpreter='tex';
                
                answer=inputdlg(prompt,name,numlines,defaultanswer,options);
                
    
            else
                flag = -1;
                break;
            end
            
        else
            string = answer;
            if string =="Yes"
                flag = 1;
                break;
            elseif string =="No"
                flag = -1;
                break;
            else
                disp("Please input the right string!!");
            end
            
        end
        times =times +1;
        
        
    end
    
    %% choose a way
    if flag == 1
        MSURF(A ,B);
    else
        if nargin == 3
            if varargin{1} ~="harris"&&varargin{1} ~="SURF"
                error('the first input string is incorrect! ');
                
            elseif  varargin{1} =="SURF"
                MSURF(A ,B);
            elseif varargin{1} =="harris"
                
                [newImage]= Mharris(A,B);
                figure('Name',"Harris,3");
                imshow(uint8(newImage));
                
                
            end
        elseif nargin == 2
            [newImage]= Mharris(A,B);
            figure('Name',"Harris,2")
            imshow( uint8(newImage));
        elseif nargin == 4
            if varargin{2}=="write"||varargin{2}=="Corner"
                if varargin{2}=="write"
                    Mwrite = 1;
                else
                    Mwrite = 0;
                end
                if varargin{2}=="Corner"
                    Mcorner = 1;
                else
                    Mcorner = 0;
                    
                end
            else
                error('the second input string is incorrect');
            end
            
            if varargin{1} ~="harris"&&varargin{1} ~="SURF"
                error('the first input string is incorrect! ');
                
            elseif  varargin{1} =="SURF"
     
                    output = MSURF(A ,B);
    
                
                
                
                if Mwrite ==1  %write
                    saveas(output,'Output\SURF','png');
                elseif Mcorner ==1
                    error("the SURF don't have the corner points!!");
                end
                
                
            elseif varargin{1} =="harris"
                
                [newImage,R1,R2]= Mharris(A,B,varargin{2});
                if Mcorner ==1
                    figure('Name','Harris 3');
                    imshow( uint8(newImage));
                    
                    figure('Name','Corner');
                    subplot(121);
                    imshow(R1);
                    title('First');
                    
                    subplot(122);
                    imshow(R2);
                    title('Second');
                    
                elseif Mwrite ==1
                    figure('Name','Harris write');
                    imshow( uint8(newImage));
                    imwrite(uint8(newImage),'Output\Harris.png');
                else
                    error('the input string is bug !!');
                end
                
            end
            
        end
    end
    
    
    
    end
    
    

    Mharris:

    function varargout= Mharris(A,B,varargin)
    %% detect 3D
        detect_bug = numel(size(A))*numel(size(B));
        if detect_bug~=9&&detect_bug~=4
            error('The picture dimensions must be consistent! ')
            
        end
        
        if numel(size(A))>2
            A_gray =im2double(rgb2gray(A));
        else
            A_gray = im2double(A);
        end
        
        if numel(size(B))>2
            B_gray =im2double(rgb2gray(B));
        else
            B_gray = im2double(B);
        end
        
        %% size
        [height_wrap, width_wrap] = size(A_gray);
        [height_unwrap, width_unwrap] = size(B_gray);
        
        
        %%  find the cornet points in these two image
        [x_A, y_A, v_A, R1] = harris(A_gray, 2, 0.0, 2);
        [x_B, y_B, v_B, R2] = harris(B_gray, 2, 0.0, 2);
        
        %% (ANMS) Adaptive non-maximum suppression
        ncorners = 500;
        [x_A, y_A, ~] = ada_nonmax_suppression(x_A, y_A, v_A, ncorners);
        [x_B, y_B, ~] = ada_nonmax_suppression(x_B, y_B, v_B, ncorners);
        
        %%   get the features points
        sigma = 7;
        [des_A] = GFD(A_gray, x_A, y_A, sigma);
        [des_B] = GFD(B_gray, x_B, y_B, sigma);
        
        %%  distance A and B
        dist = distance(des_A,des_B);
        [ord_dist, index] = sort(dist, 2);
        %% ratio 
        % the ratio is better than distance 
        % the threshold is the tolerance
        ratio = ord_dist(:,1) ./ ord_dist(:,2);
        threshold = 0.5;
        idx = ratio < threshold;
        x_A = x_A(idx);
        y_A = y_A(idx);
        x_B = x_B(index(idx,1));
        y_B = y_B(index(idx,1));
        npoints = length(x_A);
        
        %% 使用4点随机抽样一致计算鲁棒单应性估计,保持第一张图像不扭曲。
        matcher_A = [y_A, x_A, ones(npoints,1)]'; %!!! previous x is y and y is x,
        matcher_B = [y_B, x_B, ones(npoints,1)]'; %!!! so switch x and y here.
        [hh, ~] = rmy(matcher_B, matcher_A, npoints, 10);
        
        %% 使用反向旋转方法确定整个图像的大小
        [newH, newW, newX, newY, xB, yB] = GNS(hh, height_wrap, width_wrap, height_unwrap, width_unwrap);
        
        [X,Y] = meshgrid(1:width_wrap,1:height_wrap);
        [XX,YY] = meshgrid(newX:newX + newW - 1, newY:newY + newH - 1);
        AA = ones(3,newH * newW);
        AA(1,:) = reshape(XX,1,newH * newW);
        AA(2,:) = reshape(YY,1,newH * newW);
        AA = hh * AA;
        XX = reshape(AA(1,:) ./ AA(3,:), newH, newW);
        YY = reshape(AA(2,:) ./ AA(3,:), newH, newW);
        
        %% Interp2 
        if numel(size(A))==2&&numel(size(B))==2
            newImage(:,:) = interp2(X, Y, double(A(:,:)), XX, YY);
            
        elseif numel(size(A))>2&&numel(size(B))>2
            newImage(:,:,1) = interp2(X, Y, double(A(:,:,1)), XX, YY);
            newImage(:,:,2) = interp2(X, Y, double(A(:,:,2)), XX, YY);
            newImage(:,:,3) = interp2(X, Y, double(A(:,:,3)), XX, YY);
        end
        %% output 
        if nargin == 2
            varargout{1} = Mblend(newImage, B, xB, yB);
        elseif  nargin == 3
            varargout{1} = Mblend(newImage, B, xB, yB);
            varargout{2} = R1;
            varargout{3} = R2;
        end
        
    end
    

    MSURF:

    function output = MSURF(A ,B)
    
    
    %% Input
    dimension_A=numel(size(A));
    dimension_B = numel(size(B));
    if dimension_B *dimension_A==9
        color_flag = 1;
    elseif dimension_B *dimension_A==4
        color_flag = 0;
    else
        error('the input image dimension is not correct,they should have the same dimension');
    end
    
    %% imfliter
    if color_flag ==1
        I1 = rgb2gray(A);
        I2 = rgb2gray(B);
    elseif color_flag ==0
        I1 = (A);
        I2 = (B);
    
    end
    
    h = fspecial('gaussian',7,0.05);
    I1 = imfilter(I1,h,'corr','replicate');
    I2 = imfilter(I2,h,'corr','replicate');
    I1 = imerode(I1,[0 1 0;0 1 0;0 1 0]);
    I1 = imopen(I1,[0 0 0;1 1 1;0 0 0]);
    I2 = imerode(I2,[0 1 0;0 1 0;0 1 0]);
    I2 = imopen(I2,[0 0 0;1 1 1;0 0 0]);
    %对原始图像滤波并采用纵向矩阵消除背景噪声和横向噪声,增大检测到的正确匹配点数目
    
    
    %%  Backup
    
    img1=I1;
    img2=I2;
    
    
    %% SURF
    %input  :image
    %Output :SURFPoints
    
    points_1=detectSURFFeatures(img1);
    points_2=detectSURFFeatures(img2);%检测SURF特征点
    
    
    %% 特征向量
    
    [img1Features, points_1] = extractFeatures(img1, points_1);%使用64维向量表示特征描述子,
    %第一个返回的参数即为每个特征点对应的特征描述子,第二个参数是特征点
    [img2Features, points_2] = extractFeatures(img2, points_2);
    
    %% 用于特征点匹配
    boxPairs = matchFeatures(img1Features, img2Features);%特征描述子匹配
    
    %% find the Features points in all SURF points
    matchedimg1Points = points_1(boxPairs(:, 1));%第二个参数:可以不加,因为其为n行1列的结构体数组
    matchedimg2Points = points_2(boxPairs(:, 2));
    
    %%
    [tform, ~, ~] = ...
        estimateGeometricTransform(matchedimg2Points, matchedimg1Points, 'similarity');%射影变换,tfrom映射点对1内点到点对2内点
    %该函数使用随机样本一致性(RANSAC)算法的变体MSAC算法实现,去除误匹配点
    %The returned geometric transformation matrix maps the inliers in matchedPoints1
    %to the inliers in matchedPoints2.返回的几何映射矩阵映射第一参数内点到第二参数内点
    % 
    % showMatchedFeatures(I1, I2, matchedimg1Points, ...
    %     matchedimg2Points, 'montage');
    % title('Matched Points (Inliers Only)');%显示匹配结果
    
    %%
    Rfixed = imref2d(size(I1));
    
    [registered2, Rregistered] = imwarp(I2, tform);%图像射影变换,以图1作为基准
    % [registered1, Rregistered1] = imwarp(I1, tform);%以图2作为基准
    figure('Name','SURF');
    output= imshowpair(I1,Rfixed,registered2,Rregistered,'blend');%图像拼接
    
    

    里面有一些函数我没有放出来,我认为网上是都可以找到的。

    我的一些认为

    Surf: 由于matlab本身是有函数可以调用的,所以相对比较简单且速度很快,但是他会生成一种特殊的格式,其他的函数不太好调用。如果想修改的话,可能得从头开始写这个。
    并且matlab里面的方法好像不能处理彩色的图片,得先变成灰度。

    Harris:代码没有被打包,可以修改,复用性挺好的,就是速度有点慢。如果大尺寸的图片估计会卡死,建议先做一个图像的压缩。如果太大了建议还是使用Surf,感觉效果差不多。

    一点展望

    1.将不同维度的图片(一张彩色和一张灰度)的进行拼接,最后显示的有彩色的,有灰度(就是别直接把彩色变成灰度来处理)。
    2.图片的大小不一定需要相同,可以用不同尺寸的图片进行拼接。
    3.对多张有序的图片进行拼接。
    4.对多张无序的图片进行拼接。

    一个很不错的图像拼接项目
    (无序多图拼接全景,但是存在一定参数的需要人为给定的问题)

    展开全文
  • 聚焦显微图像拼接代码,运用matlab语言实现,能够快速实现视野图像拼接
  • yl520 2018-11-27 21:33:00 请问是图片还是两幅图片拼接?谢谢 tk6068 2018-11-4 22:49:14 下载学些下 rock_123 2018-10-17 15:07:28 good domyloves 2018-9-28 10:58:11 下载下来学习学习!! domyloves ...

    yangou320

    2021-3-16 11:16:34

    感谢分享,好人一生平安

    woshishuia

    2021-3-9 20:05:18

    感谢。。。分享

    林林大大

    2021-3-8 17:52:26

    感谢分..享

    羊依丝醉山

    2021-1-14 19:06:33

    感谢分享,下载学习

    tangqingy

    2021-1-12 14:50:12

    感谢分享,下载学习

    tangqingy

    2021-1-12 14:50:06

    感谢分享,下载学习

    15182579257

    2020-12-6 17:42:48

    感谢分享,下载学习

    15182579257

    2020-12-6 17:42:45

    感谢分享,下载学习

    yxys

    2020-12-2 19:03:58

    感谢分享,下载学习

    yct123

    2020-11-4 16:19:34

    感谢分享,下载学习

    yct123

    2020-11-4 16:19:34

    感谢分享,下载学习

    yct123

    2020-11-4 16:19:34

    感谢分享,下载学习

    yct123

    2020-11-4 16:19:34

    感谢分享,下载学习

    yct123

    2020-11-4 16:19:32

    感谢分享,下载学习

    yct123

    2020-11-4 16:18:57

    多谢分享 感谢 下载学习

    yct123

    2020-11-4 16:18:56

    多谢分享 感谢 下载学习

    yct123

    2020-11-4 16:18:56

    多谢分享 感谢 下载学习

    yct123

    2020-11-4 16:18:56

    多谢分享 感谢 下载学习

    yct123

    2020-11-4 16:18:53

    多谢分享 感谢 下载学习

    yct123

    2020-11-4 16:18:03

    多谢分享 感谢 下载学习

    yct123

    2020-11-4 16:18:03

    多谢分享 感谢 下载学习

    yct123

    2020-11-4 16:18:03

    多谢分享 感谢 下载学习

    yct123

    2020-11-4 16:18:00

    多谢分享 感谢 下载学习

    向量I7

    2020-9-24 10:22:00

    多谢分享 感谢 下载学习

    向量I7

    2020-9-24 10:21:59

    多谢分享 感谢 下载学习

    向量I7

    2020-9-24 10:21:59

    多谢分享 感谢 下载学习

    向量I7

    2020-9-24 10:21:59

    多谢分享 感谢 下载学习

    向量I7

    2020-9-24 10:21:59

    多谢分享 感谢 下载学习

    向量I7

    2020-9-24 10:21:58

    多谢分享 感谢 下载学习

    向量I7

    2020-9-24 10:21:56

    多谢分享 感谢 下载学习

    向量I7

    2020-9-24 10:21:53

    多谢分享 感谢 下载学习

    cyh0518

    2020-9-22 19:59:47

    下载学习,谢谢!

    cyh0518

    2020-9-22 19:59:45

    下载学习,谢谢!

    cyh0518

    2020-9-22 19:59:43

    下载学习,谢谢!

    cyh0518

    2020-9-22 19:57:48

    下载学习,谢谢!

    cyh0518

    2020-9-22 19:57:11

    下载学习,谢谢!

    废品儿

    2020-9-10 17:07:14

    下载学习,谢谢!

    废品儿

    2020-9-10 17:07:05

    下载学习,谢谢!

    ccf000

    2020-7-13 15:34:19

    下载学习,谢谢

    ljp12312

    2020-7-3 19:48:59

    下载学习,谢谢

    daecx

    2020-7-1 9:53:28

    下载学习谢谢

    liaowz

    2020-6-25 17:52:57

    下载学习谢谢

    陈翔c

    2020-6-18 10:40:19

    下载学习谢谢

    ARAN

    2020-5-25 17:10:32

    下载学习,谢谢!

    hzhdhz

    2020-5-23 10:51:46

    下载学习,谢谢了

    菜菜的码农

    2020-5-19 20:44:05

    下载学习,谢谢分享

    jsntsch

    2020-5-14 22:57:56

    下载学习,非常感谢

    q595645129

    2020-5-14 10:12:50

    下载学习,感谢分享,希望能对图像拼接有一个更深入的了解

    qq123456789

    2020-5-13 22:30:40

    下载学习,感谢分享

    1234679

    2020-4-28 23:14:23

    下载学习,感谢分享,希望能对图像拼接有一个更深入的了解

    1234679

    2020-4-28 23:14:22

    下载学习,感谢分享,希望能对图像拼接有一个更深入的了解

    1234679

    2020-4-28 23:14:20

    下载学习,感谢分享,希望能对图像拼接有一个更深入的了解

    1234679

    2020-4-28 23:14:18

    下载学习,感谢分享,希望能对图像拼接有一个更深入的了解

    1234679

    2020-4-28 23:14:14

    下载学习,感谢分享,希望能对图像拼接有一个更深入的了解

    keyangongjuren

    2020-1-14 15:27:09

    下载学习,感谢分享,希望能对图像拼接有一个更深入的了解

    shmilyaa

    2019-12-1 17:44:22

    下载学习,感谢分享,希望能学会更

    zhongpei

    2019-11-19 21:37:15

    下载学习,感谢分享,希望能学会更多

    zhongpei

    2019-11-19 21:36:45

    下载学习,感谢分享

    zhongpei

    2019-11-19 21:36:40

    下载学习,感谢分享

    yyh926

    2019-9-23 4:43:24

    下载学习,感谢分享

    赵山河

    2019-8-31 15:06:12

    下载学习,感谢分享

    123456789吴

    2019-6-18 7:47:42

    十分感谢,想学习

    123456789吴

    2019-6-18 7:47:42

    十分感谢,想学习

    123456789吴

    2019-6-18 7:47:41

    十分感谢,想学习

    123456789吴

    2019-6-18 7:47:41

    十分感谢,想学习

    123456789吴

    2019-6-18 7:47:36

    十分感谢,想学习

    123456789吴

    2019-6-18 7:47:33

    十分感谢,想学习

    emperorssad

    2019-5-17 18:14:39

    十分感谢,谢谢了

    emperorssad

    2019-5-17 18:14:36

    十分感谢,谢谢了

    emperorssad

    2019-5-17 18:14:17

    十分感谢

    11aa11

    2019-5-12 21:55:41

    谢谢,学习

    11aa11

    2019-5-12 21:55:38

    谢谢,学习学习

    11aa11

    2019-5-12 21:55:37

    谢谢,学习学习

    11aa11

    2019-5-12 21:54:44

    谢谢,学习学习

    11aa11

    2019-5-12 21:54:44

    谢谢,学习学习

    11aa11

    2019-5-12 21:54:40

    谢谢,学习学习

    yl520

    2019-5-6 9:19:08

    请问是多张图片的拼接还是两张?谢谢回答

    蒙太一

    2019-1-20 11:49:56

    学习学习,谢谢啦

    Gredo

    2019-1-3 16:03:49

    下载学习,感谢分享

    csy300

    2018-12-30 9:07:51

    求分享3176964902@qq.com,不胜感激

    ztcadj

    2018-12-29 11:02:23

    下载学习,感谢分享

    ztcadj

    2018-12-29 11:02:16

    下载学习,感谢分享

    ztcadj

    2018-12-29 11:02:08

    下载学习,感谢分享

    2810164922

    2018-11-29 11:26:19

    想下载下来学习

    yl520

    2018-11-28 22:11:42

    请问是多张图片的么?

    yl520

    2018-11-27 21:33:00

    请问是多张图片还是两幅图片的拼接?谢谢

    tk6068

    2018-11-4 22:49:14

    下载学些下

    rock_123

    2018-10-17 15:07:28

    good

    domyloves

    2018-9-28 10:58:11

    下载下来学习学习!!

    domyloves

    2018-9-28 10:58:08

    下载下来学习学习

    domyloves

    2018-9-28 10:57:49

    下载下来学习学习

    domyloves

    2018-9-28 10:57:46

    下载下来学习学习

    lx19949436329

    2018-9-20 21:09:36

    学习学习学习

    leoaisdd

    2018-7-3 9:34:45

    下载下来学习学习

    leoaisdd

    2018-7-3 9:34:42

    下载下来学习学习

    wxh1234

    2018-6-29 21:30:15

    实用凄凄切切

    hewen

    2018-5-20 17:13:31

    “错误使用 ones

    Size 输入必须为整数。

    出错 EdgeSmooth (line 18)

    TA=[ones(1,(length(h)+1)/2+(CA+pos)/2),zeros(1,((2*CB+pos-CA)/2+(length(h)+1)/2))];%进行了延拓,确保卷积不会出现边缘现象”

    直接运行main出现这个,求楼主解答。

    hewen

    2018-5-20 16:37:00

    谢谢楼主!

    Gzw

    2018-5-14 11:03:04

    求分享625084052@qq.com

    不胜感激🙏

    wwwwwwwww

    2018-5-5 14:59:00

    谢谢楼主!

    展开全文
  • MATLAB图像拼接。随着计算机在各个领域的广泛应用,为了得到宽视角、高分辨率图像图像拼接技术逐渐成为计算机图形学、计算机视觉、模式识别等领域的研究热点,得到越来越多人的关注。图像拼接技术就是将数张有重叠...
  • 第一章 绪论 1.1 图像拼接技术的研究背景及研究意义 图像拼接(image mosaic)是一个日益流行的研究领域,他已经成为照相绘图学、计算机视觉、图像处理和计算机图形学研究中的热点。图像拼接解决的问题一般式,通过...
  • MATLAB图像拼接技术

    2021-08-31 11:59:21
    选题的背景与意义在日常生活中,使用普通...为了在不降低图片分辨率的条件下获取大视野的场景照片,可将普通照片或者视频图像进行无缝拼接,得到超宽视角甚至360°全景图,实现场面宏大的景物拍摄。图像拼接(Imag...
  • 基于MATLAB图像拼接实现

    千次阅读 2021-09-08 11:53:10
    基于MATLAB图像拼接实现第一章 绪论 1.1 图像拼接技术的研究背景及研究意义 图像拼接(image mosaic)是一个日益流行的研究领域,他已经成为照相绘图学、计算机视觉、图像处理和计算机图形学研究中的热点。图像...
  • MATLAB图像拼接实现

    2021-08-25 11:58:52
    选题的背景与意义在日常生活中,使用普通...为了在不降低图片分辨率的条件下获取大视野的场景照片,可将普通照片或者视频图像进行无缝拼接,得到超宽视角甚至360°全景图,实现场面宏大的景物拍摄。图像拼接(Imag...
  • MATLAB图像融合拼接

    千次阅读 2021-12-30 13:03:04
    MATLAB图像融合拼接 本文说明的内容是图像拼接,采用基于特征点的匹配方法将两张定点拍摄的照片进行拼接,合成一张图,将全景图生成简化成两张图片拼接,具体可以分为以下几点:掌握图像灰度化、图像投影变换、...
  • 毕设要用到MATLAB实现一个图像拼接算法,看了老师给的一个例子,对里面的很代码的作用、用法、意义等都不懂,希望各位高手给点建议或者提供点资料~下面是其中一个.m文件的代码~A=imread('view1.bmp');figure,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,048
精华内容 419
关键字:

matlab多幅图像拼接

matlab 订阅