2

私はopencvが初めてで、いくつかのコードを実行しようとしています..視差マップからv視差マップを取得する必要があります.ステレオマッチングを取得するために2つの修正された画像を使用しており、その後、密な視差マップを使用しています視差マップを取得し、v-disparity でそれを tronsform しようとしたとき、空のウィンドウが表示されませんでした 。Raphael Labayrade、Didier Aubert、Jean-Philippe Tarel の記事 Real Time で提案されたアルゴリズムを参照しています。 「V 視差」表現による平坦でない道路形状の立体視における障害物検出。
私のコードを聞く:

int main(int argc, char *argv[]){       
  int nbrepetion ; 
  Mat img = imread(argv[1],0); 
  Mat image(img.rows,img.cols, CV_8UC1); 
  if(img.empty()){
    printf("Could not load image file\n");
    exit(0);
  }
  int height = img.rows;
  int width = img.cols;
  int a = width ; 
  int k = 0 ; 
  uchar pos =0 ; 
  for(int i = 0; i < height; i++){
    for(int j = 0; j < width; j++)
    for (int k = 0; k < a; k++){
      if(img.at<uchar>(i,j) == img.at<uchar>(i,k)) {
        nbrepetion ++ ; 
      } 
    }  
    if(nbrepetion == 1){
      image.at<uchar>(i,k) = img.at<uchar>(i,k);
    } else {
      pos = img.at<uchar>(i,k); 
      image.at<uchar>(pos,k) = nbrepetion;
    }
    nbrepetion = 0 ;     
  }
  namedWindow("disparityimage", CV_WINDOW_AUTOSIZE);
  imshow("disparityimage", image ); 
  waitKey(0);
  return 0;
}
4

2 に答える 2

2

v 視差画像の場合: サイズ (行、maxVal) の行列を使用し、視差値が v 視差画像の列に対応する視差画像の行ごとに、対応する要素を 1 ずつ増やします。

u 視差画像の行に沿ってこれを繰り返します。

于 2015-07-16T03:50:22.950 に答える