2017-12-22 49 views
0

OpenCVでC#(EmguCV)の画像からヒストグラムを計算しようとしています。calcHist C#エラーのOpenCV

これは私のコードです:

 VectorOfMat bgr_planes = new VectorOfMat(); 
     CvInvoke.Split(myImage, bgr_planes); 

     int[] dim = new int[] { 0 }; 
     int[] histSize = new int[] { 256 }; 
     float[] range = new float[] { 0f, 255f }; 
     bool accumulate = false; 

     Mat b_hist = new Mat(); 
     Mat g_hist = new Mat(); 
     Mat r_hist = new Mat(); 

     CvInvoke.CalcHist(bgr_planes, dim, new Mat(), b_hist, histSize, range, accumulate); 
     CvInvoke.CalcHist(bgr_planes, dim, new Mat(), g_hist, histSize, range, accumulate); 
     CvInvoke.CalcHist(bgr_planes, dim, new Mat(), r_hist, histSize, range, accumulate);` 

しかし、私はデータb_histg_histr_histを得ることはありません。私は特定のチャネルbgr_planes[0]に対処できません。それらはタイプMatであり、エラーを投げます。

dimhistSizerangeを調整してカラーヒストグラムを取得するにはどうすればよいですか?

ありがとうございました!私は(...右の質問を投稿した後、もちろん)それを自分で解決

答えて

0

をここでは、私が変更するものである:

これはbgr_planesの1つのカラーチャンネルを分離します。 VectorOfMat colorChannelBでは、1つのカラーチャンネルのみになりました。各チャンネルごとに個別に行い、パラメータを保持してください。