cvsobel関数の使用にはいくつか問題があります。私はcvsobel + emgucvの適用方法
私のコードは
です...誰かが私は、私は戻って8ビットにそれを拡張することができます方法を見つけ出す手助けすることができます...cvsobel
は16ビットに8ビットから画像の深さを増加させることを
を読んだことがあります
Image<Gray, Byte> grayImage = TestImage.Convert<Gray, Byte>().PyrDown().PyrUp(); ;
Image<Gray, Byte> Dest = new Image<Gray, Byte>(grayImage.Size);
Image<Gray, Byte> SobelHorizontal = new Image<Gray, Byte>(grayImage.Size);
CvInvoke.cvCanny(grayImage, Dest, 10, 60, 3);
CvInvoke.cvSobel(Dest, SobelHorizontal, 1, 0, 3); // introduces exception
ここで、TestImage
はユーザーからのカラー画像です。
問題ここで私は
Hey Chris、ありがとうございました...私はイメージの水平線と垂直線を見つけようとしていますので、ソベルの演算子を使用するのが正しい方法かどうかを教えてください。 – user671805
正直言って、Cannyはエッジを検出する方が効果的ですが、ソベルとは異なり、どの方向を通過するかを定義することはできません。私はCannyを使ってHoughLines演算を使用して、どの線が強い垂直線と水平線であるかを判断することをお勧めします。これは、変数を使用して角度を選ぶことができます。あなたがソベルを使ったとしても、イメージ内でこれらの線を見つける必要があるからです。もしあなたが立ち寄って気軽に聞いてみると、何か質問にお答えしようと思います。 – Chris