1

タイトルで問題を説明するのは難しいので、読んでください。

ソーベルフィルターを実装するプロジェクトがあります。最初は、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);

しかし、同じ計算が異なる方法で表現されています

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

それは完璧に機能しました。それでも、フィルターだけのシミュレーションはまったく同じです。ベクトルの前にゼロを埋める方法と関係がありますか?

4

1 に答える 1

2

データ型がわからないと、これが原因かどうかは完全にはわかりませんがp1 > p3、2つのタイプの計算から異なる結果が得られると思います(他のいくつかのデータ型も)。擬似コードの例:

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

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


--Method2
res = ("000" & p3) - ("000" & p1) = "000001" - "000010" = "111111";
于 2012-05-18T11:23:22.897 に答える