完整的m文件:%matlab图像拼接(四种方法)% 1、直接拼接,% 2、亮度调整后拼接,% 3、按距离比例融合,% 4、亮度调整后按距离比例融合 %流程:%1。读入左,右图,并取出重合部分,并转化为亮度图%2。分别把每点的亮度值相加,得到一个比值%3。把比值 乘以 右图%4。再把左 各 右图 拼接 clear;close all,clc;%读入原图 (左 右)img1=imread('2jpg');img2=imread('1jpg');% figure;imshow(img1);%显示% figure;imshow(img2); %查找它们的SIFT特征,并返回匹配点对---------------------特征匹配 开始[des1, des2] = siftMatch(img1, img2);des1=[des1(:,2),des1(:,1)];%左右(x和y)交换 为基础矩阵F 过滤匹配准备参数des2=[des2(:,2),des2(:,1)];% %用 基础矩阵F 过滤匹配的特征点对matchs = matchFSelect(des1, des2) %匹配位置索引(掩码)des1=des1(matchs,:);%取出内点des2=des2(matchs,:); % 画出匹配特征点的连接线(好点)drawLinedCorner(img1,des1,img2, des2) ;%------------------------------------------------------特征匹配 结束 [H,W,k]=size(img1);%图像大小l_r=W-des1(1,2)+des2
说明:该程序的作用是计算输入图像img的平均梯度值AVEGRAD
平均梯度值可以衡量图像细节反差表达的能力,是图形融合结果的一个评价算子之一
function AVEGRAD=avegrad(img)
%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% this function is used to calculate
%%%% the average gradient of an image
%%%% editor: denghaibo Email:denghblzu07@gmailcom
%%%% date : 2009-4-15
%%%% 平均梯度可敏感地反映图像对微小细节反差表达的能力,可用来评价图像的模糊程度
%%%% 在图像中,某一方向的灰度级变化率大,它的梯度也就大。因此,可以用平均梯度值
%%%% 来衡量图像的清晰度,还同时反映出图像中微小细节反差和纹理变换特征。
img=double(img);
[M,N]=size(img);
gradval=zeros(M,N); %%% save the gradient value of single pixel
diffX=zeros(M,N); %%% save the differential value of X orient
diffY=zeros(M,N); %%% save the differential value of Y orient
tempX=zeros(M,N);
tempY=zeros(M,N);
tempX(1:M,1:(N-1))=img(1:M,2:N);
tempY(1:(M-1),1:N)=img(2:M,1:N);
diffX=img-tempX;
diffY=img-tempY;
diffX(1:M,N)=0; %%% the boundery set to 0
diffY(M,1:N)=0;
diffX=diffXdiffX;
diffY=diffYdiffY;
AVEGRAD=sum(sum(diffX+diffY));
AVEGRAD=sqrt(AVEGRAD/2);
AVEGRAD=AVEGRAD/((M-1)(N-1));
end
我也在找呢,发现一个,共同参考下吧。
以上就是关于matlab 彩色图片拼接融合后如何消除拼接缝全部的内容,包括:matlab 彩色图片拼接融合后如何消除拼接缝、matlab 图像融合后 怎么求图像的均值,标准差啊、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)