Question

Difficile d'expliquer le problème dans le titre, veuillez donc lire sur.

J'ai un projet où nous mettons en œuvre un filtre SOBEL.Au début, l'image n'a pas fonctionné comme elle devrait le faire, avec les calculs de SOBEL

Gx <= ("000" & p3-p1)+(("00" & p6 & '0')-("00" & p4 & '0'))+("000" & p9-p7);
Gy <= ("000" & p7-p1)+(("00" & p8 & '0')-("00" & p2 & '0'))+("000" & p9-p3);

mais avec la même calulation exprimée d'une manière différente

Gx <= ("000" & p3)+("00" & p6 & '0')+("000" & p9)-("000" & p1)-("00" & p4 & '0')-("000"
 & p7);
Gy <= ("000" & p7)+("00" & p8 & '0')+("000" & p9)-("000" & p1)-("00" & p2 & '0')-("000"
 & p3);

Cela a fonctionné parfaitement.Néanmoins, les simulations du filtre seul sont exactement les mêmes. A-t-il quelque chose à voir avec la façon dont je pads les zéros avant les vecteurs?

Était-ce utile?

La solution

Sans connaître les types de données, je ne suis pas totalement sûr que ceci est la cause, mais je suppose que si p1 > p3 (et certains des autres aussi), vous obtiendrez différents résultats des deux types de calculs.Exemple pseudo-code:

p1 = "010";
p3 = "001";

--Method1:
res = "000" & p3-p1 = "000" & "111" = "000111";


--Method2
res = ("000" & p3) - ("000" & p1) = "000001" - "000010" = "111111";

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top