Pergunta sobre matlab, opencv, image-processing – Como lidar com valores de coordenadas de ponto flutuante na imagem

4

Eu estou traçando alguma geometria em uma imagem. O problema é que as coordenadas estão saindo como flutuadores, então não consigo mapeá-las. Como um trabalho em torno de eu estou usando floor (); para truncá-lo para o Integer mais próximo. Isso funciona bem em alguns casos, exceto que ele muda um pouco a minha imagem.

  x=9.7 

  x'=floor(x)= 9  //the plot is now at 9 and not at 9.7 as desired, (this is 'shift')   

Mas nos casos em que minha exigência é desenhar várias formas emdistância igual Eu estou enfrentando problema como o deslocamento (por causa do chão ();) não é uniforme para cada forma.
É como o ruído de quantização na comunicação digital.

Existe alguma maneira de contornar este problema?

Isso não éassim como o ruído de quantização na comunicação digital isto éruído de quantização em comunicação digital. Qualquer abordagem para arredondar um número f-p para um inteiro representará esse problema, embora uma escolha inteligente (?) Do método de arredondamento possa minimizar seu impacto para sua situação. High Performance Mark
usar antialiasing Spektre

Sua resposta

1   a resposta
3

Rasterização é o domínio do problema com o qual você está lutando atualmente. Você pode encontrarAlgoritmo de linha de Bresenham uma boa introdução ao tópico.Aqui é um bom site interativo com alguns algoritmos diferentes de rasterização.

Espero que ajude!

+1 Lembra-me da discussão:GL_LINEAR vs GL_NEAREST, se você estiver em OpenGL.Esta página também é ótimo e menciona que o GL_NEAREST usaManhattan distância. karlphillip

Perguntas relacionadas