
显示的是axes控件,就是那个图表样的按钮 pushbutton1中要完成以下任务。 先用imread读出来,再用imshow显示。还要将读出的图像矩阵保存以备其它控件调用。 其中选择文件可以用uigetfile命令,得到的是文件名和路径名两个字符串,然后把两者组合为一个字符串(fullfile命令或直接用矩阵拼接功能)用imread读即可。 因为要用pushbutton2处理图像,因此读出的图像矩阵要进行保存,可以将图像矩阵保存到诸如handlesdata中,然后guidata(hObject,handles)刷新数据。之后在pushbutton2中就可以调用handlesdata了。当然也可以将图像矩阵保存为全局变量。
完整的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
1首先打开计算机上的matlab程序,然后输入指令[清除;,清除屏幕。
2然后将准备好的图像复制到matlab的工作目录中。
3输入返回指令[data=imread('folder图标。BMP')]在主界面;,将图像转换为数据。
4然后双击工作区中的数据,查看图像数据的特定信息。
5输入指令[imshow(data);],可以看到数据代表了。
6输入指令[gdata=rgb2gray(data);],可以得到灰度后的矩阵。
7双击右边工作区中的gdata以查看数据的特定信息。
8然后输入指令[imshow(gdata);],可以看到灰度图像。
是这样的,如果你再程序开始添加holdon这个的画,表示这之后的每一次作图都保留以前的图,这样就可以连续画图了
反之holdoff,表示打开这个之后,每次画图,删除以前的图,
1、比如eidtt常用的是set(handlesedit1,'string',md); get(handlesedit1,'string',md); 回调函数啊pushbutton1_Callback 2、是不是只要一改变控件里的值,就会触发回调函数,不动它就不调用! 答:一般来说是回调函数触发后 可以改变控件里面
matlab的最常用画图命令函数是plot(),使用实例:
x=-2pi:pi/10:2pi; %x的区间-2π,2π
y=sin(x)+cos(x); %计算y值
plot(x,y,'r-') %画图
xlabel('x'),ylabel('y(x)') %坐标轴名称
title('y=sin(x)+cos(x)'); %图形标题名称
其余画图命令还有,ezplot,polar,ezpolar等二维绘图命令
如想了解,可以进一步私聊。
这只是批量读入图像从matlab论坛找的,把am文件直接放在附件1文件夹里直接运行,调试通过
imname = dir('\bmp');%读入文件夹下的全部图像
im_num = length(imname);% 文件夹中图像的个数
im_temp = imread(imname(1)name,'bmp');%读入第一幅图像
[height,width] = size(im_temp);%得到图像的尺寸
DB(:,:,a) = zeros(height,width,im_num,'uint8');
% 读入全部图像
for a = 1:length(imname)
DB(:,:,a) = imread(imname(a)name,'bmp');%读取图像数据
end
批量读入
用cat函数连接;
每个纸条的边界
ima = DB(:,:,a);
im_left = ima(:,1);
im_right= ima(:,end);
在gui界面添加一个pushbutton和一个Axes,在相应的M文件界面,找到function pushbutton1_Callback(hObject, eventdata, handles),再在下面添加你的代码就行,最后加上guidata(hObject,handles);
以上就是关于matlab读出图片矩阵后再怎么拼接全部的内容,包括:matlab读出图片矩阵后再怎么拼接、matlab 彩色图片拼接融合后如何消除拼接缝、如何用MATLAB产生图像等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)