Ficando preso no mecanismo de sub-plotagem do Matlab para pontos de imagens correspondentes para vlfeat

Eu estou fazendo vlfeat no Matlab e estou seguindo essa questãoAqui.

Estas abaixo são minhas imagens simples de teste:

Imagem à esquerda:

Imagem da direita:

Eu fiz um teste simples com 2 imagens simples aqui (a imagem direita é apenas a versão girada da esquerda) e obtive o resultado de acordo:

Funciona, mas eu tenho mais um requisito, que é combinar os pontos SIFT das duas imagens e mostrá-las, assim:

Eu entendo que vl_ubcmatch retorna 2 arrays de índices combinados, e não é um problema mapeá-los para qual ponto vai para qual ponto em duas imagens. No entanto, atualmente estou preso no procedimento do matlab. eu encontreiisto. Mas isso só funciona se a subtrama continuar assim. Quando você adiciona uma imagem na subtrama, o tamanho muda e a normalização falha.

Aqui está o meu código: (im e im2 são imagens. F, d e f2, d2 são quadros e descritores da função vl_sift de 2 imagens, respectivamente)

    [matches score] = vl_ubcmatch(d,d2,threshold);%threshold originally is 1.5

if (mode >= 2)%verbose 2

    subplot(211);
    imshow(uint8(im));
    hold on;
    plot(f(1,matches(1,:)),f(2,matches(1,:)),'b*');

    subplot(212);
    imshow(uint8(im2));
    hold on;
    plot(f2(1,matches(2,:)),f2(2,matches(2,:)),'g*');

end

if (mode >= 3)%verbose 3

     [xa1 ya1] = ds2nfu(  f(1,matches(1,:)),  f(2,matches(1,:)));
     [xa2 ya2] = ds2nfu( f2(1,matches(2,:)), f2(2,matches(2,:)));

    for k=1:numel(matches(1,:))

        xxa1 = xa1(1, k);
        yya1 = ya1(1, k);
        xxa2 = xa2(1, k);
        yya2 = ya2(1, k);

        annotation('line',[xxa1 xxa2],[yya1 yya2],'color','r');
    end
end

O código acima gera isso:

Acho que a subtrama não é um bom caminho para algo assim. Existe um método melhor para isso em Matlab? Se possível, quero algo como um painel vazio que eu possa desenhar minha imagem, desenhar linhas livremente e ampliar livremente, assim como desenhar jogos 2D no estilo OpenGL.

questionAnswers(2)

yourAnswerToTheQuestion