Matlab筛选关键点多个图像,显示在一个图像上

Matlab筛选关键点多个图像,显示在一个图像上,matlab,computer-vision,matlab-figure,sift,Matlab,Computer Vision,Matlab Figure,Sift,我试图在一张图像上显示4个并发视频帧的sift关键点。我已经能够确定每个图像的关键点,但是我希望在最后一个图像上显示所有这些关键点集,而不是4个单独的图像,以便跟踪正在显示的卡车的移动。我写的代码如下: I1 = imread('6.jpg'); g = rgb2gray(I1); imwrite(g, '10.png','PNG'); [I1, D, L] = sift('C:\Users\Xaiver\Documents\MATLAB\10.png'); s

我试图在一张图像上显示4个并发视频帧的sift关键点。我已经能够确定每个图像的关键点,但是我希望在最后一个图像上显示所有这些关键点集,而不是4个单独的图像,以便跟踪正在显示的卡车的移动。我写的代码如下:

I1 = imread('6.jpg');     
g = rgb2gray(I1);    
imwrite(g, '10.png','PNG');    
[I1, D, L] = sift('C:\Users\Xaiver\Documents\MATLAB\10.png');    
showkeys(I1, L)    
I2 = imread('7.jpg');    
g = rgb2gray(I2);    
imwrite(g, '11.png','PNG');    
[I2, D, L] = sift('C:\Users\Xaiver\Documents\MATLAB\11.png');    
showkeys(I2, L)    
I3 = imread('8.jpg');    
g = rgb2gray(I3);    
imwrite(g, '12.png','PNG');    
[I3, D, L] = sift('C:\Users\Xaiver\Documents\MATLAB\12.png');    
showkeys(I3, L)    
I4 = imread('9.jpg');    
g = rgb2gray(I4);    
imwrite(g, '13.png','PNG');    
[I4, D, L] = sift('C:\Users\Xaiver\Documents\MATLAB\13.png');    
showkeys(I4, L)

如何从仅显示在图像I4上的图像I1、I2、I3和I4中获取SIFT关键点?

好吧,我不知道
showkeys
过程是如何工作的,因为您没有提供代码,但有些信息告诉我,您可以在调用之间使用
按住
,它会工作:

[I1, D, L1] = sift('C:\Users\Xaiver\Documents\MATLAB\10.png');
[I2, D, L2] = sift('C:\Users\Xaiver\Documents\MATLAB\11.png');
[I3, D, L3] = sift('C:\Users\Xaiver\Documents\MATLAB\12.png');
[I4, D, L4] = sift('C:\Users\Xaiver\Documents\MATLAB\13.png');
showkeys(I1, L1);
hold on;
showkeys(I2, L1);
showkeys(I3, L1);
showkeys(I4, L1);

请不要使用所有CAP标题,并设置问题格式。我现在已经为你这样做了。看看区别。哈哈,谢谢!对不起,伙计们,我不想大喊大叫。我想你们必须打开showkeys()的源代码,自己动手处理。在matlab文档中查找“figure”和“hold on”,尤其是。。。我终于明白了。我必须编辑showkeys()函数和我的代码。谢谢,安德烈,你的建议行不通。我能得到的最接近的结果是写:showkeys(I4,L)showkeys(I4,M)showkeys(I4,N)showkeys(I4,O)这给出了仅在图像I4上显示的图像中的每个关键点,但是,它会带关键点显示I4的4个单独图像,不仅仅是一张一次显示所有点的图像。如果你有任何其他建议,请告诉我。谢谢显示键(图像、LOC)此功能显示覆盖了SIFT关键点的图像。输入参数:图像:图像(灰度)locs:矩阵的文件名,其中每行提供关键点位置(行、列、比例、方向)