2017-05-26 8 views
0

私は関数内にMatコンテナを渡しています。しかし、私は何が出力されるのか分からない。出力をどのように表示しますか?画像として表示しているときに空白の行列が表示されているためです。提案をお願いします。前もって感謝します。 CV_32FC1、すなわち単一チャネルフロートマトリックス:buildCostMatrix関数の出力行列のデータ型は?

これは、コスト・マトリックスのタイプは自分のコード

#include "opencv2/highgui/highgui.hpp" 
#include "opencv2/imgproc/imgproc.hpp" 
#include <iostream> 
#include <stdio.h> 
#include"opencv2/opencv.hpp" 
#include"opencv2/shape.hpp" 
using namespace std; 
using namespace cv; 


/** 
* @function main 
*/ 
int main() 
{ 
    Mat src, dst; 
    Mat src1,dst1; 
    /// Load image 
    src = imread("photo.jpg"); 
    src1= imread("photo1.jpg"); 
    if(!src.data) 
    { return -1; } 
    if(!src1.data) 
    { return -1; } 


    int bins = 256; 
    int histSize[] = {bins}; 
    // Set ranges for histogram bins 
    float lranges[] = {0, 256}; 
    const float* ranges[] = {lranges}; 
    // create matrix for histogram 
    cv::Mat hist,hist1, out; 
    int channels[] = {0};double k; 
    int const hist_height = 256; 
    cv::Ptr<HistogramCostExtractor> model = createChiHistogramCostExtractor(25,0.2f); 
    cv::Mat3b hist_image = cv::Mat3b::zeros(hist_height, bins); 
    cv::calcHist(&src, 1, channels, cv::Mat(), hist, 1, histSize, ranges, true, false); 
    cv::calcHist(&src1, 1, channels, cv::Mat(), hist1, 1, histSize, ranges, true, false); 
    //double cost[256][256]; 
    // int costrows = std::max(hist.rows,hist1.rows)+nDummies; 
    //out.create(costrows,costrows,CV_32F); 
    cout << hist_height; 


    model->buildCostMatrix(hist,hist1,out); 
    normalize(out, out, 0, 1, NORM_MINMAX, -1, Mat()); 


    cout << out; 


cv::waitKey(); 
return 0; 
} 
+0

ショー。あなたの質問は、現在、人々が手助けするための細部についてはあまりにも不足しています。具体的に、試行錯誤を見せてください。 –

+0

私は2つのhistograsmを入力としてbuildCostMatrix関数{model-> buildCostMatrix(hist、hist1、out);}に渡しています。 cout << out;}コメントにコード全体を投稿することはできません。 –

+0

質問をいつでも編集して詳細を提供することができます(推奨)。それはまた将来あなたの質問に出くわすかもしれない他の人々を助けるでしょう。 –

答えて

0

あります。

あなたは_costMatrixは次のように作成されsource codeのそれを見ることができます:あなたは、少なくとも限りあなたが得ることができたとして試みたりした内容のうちの少なくともいくつかのサンプルコード

_costMatrix.create(costrows, costrows, CV_32FC1); 
+0

しかし、あなたは出力としてそれを置く方法に関して私を助けてもらえますか?私が印刷しているとき、私はフロート値をたくさん得ているからです。 –

関連する問題