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

时间:2012-05-24 02:37:01

标签: matlab computer-vision matlab-figure sift

我试图将4个并发视频帧的筛选关键点显示在一个图像上。我已经能够确定每个图像的关键点,但是想要在最后一个图像上显示所有这些关键点而不是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)

如何从图像I1,I2,I3和&amp ;;中获取SIFT关键点? I4仅显示在图像I4上?

1 个答案:

答案 0 :(得分:0)

好吧,我不知道showkeys程序是如何工作的,因为你没有提供代码,但有些东西告诉我你可以在调用之间使用hold on,它会起作用:

[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);