Перейти к содержимому
Compvision.ru

Sencor

Пользователи
  • Количество публикаций

    1
  • Зарегистрирован

  • Посещение

Репутация

0 Новичек

О Sencor

  • Звание
    Новичок
  1. Добрый день! Стоит задача построить карту глубины по двум изображениям, но ничего не выходит. В программировании новичок. Не подскажете в чем может быть проблема? Нужна ли при данной задаче калибровка, если изображения загружаются из файла? И зачем? Вот код моей программы: int main(int argc, char **argv) { IplImage *Limage = 0, *Rimage = 0, *Lgray = 0, *Rgray = 0, *dstr = 0; Limage = cvLoadImage("leftImg.jpg", 0); if (Limage == NULL) { fprintf(stderr, "ERROR: Could not load left image %s\n"); return 1; } Rimage = cvLoadImage("rightImg.jpg", 0); if (Rimage == NULL) { fprintf(stderr, "ERROR: Could not load right image %s\n"); return 1; } Lgray = cvCreateImage(cvGetSize(Limage), Limage->depth, 1); Rgray = cvCreateImage(cvGetSize(Rimage), Rimage->depth, 1); cvConvertImage(Limage, Lgray, CV_BGR2GRAY); cvConvertImage(Rimage, Rgray, CV_BGR2GRAY); CvMat *Stereo = cvCreateMat(Limage->height, Limage->width, CV_16S); if (Stereo == NULL) { fprintf(stderr, "ERROR: Could not create depth map %s\n"); return 1; } CvStereoBMState* state = cvCreateStereoBMState(); if (state == NULL) { fprintf(stderr, "ERROR: Could not create CvStereoBMState\n"); return 1; } state->SADWindowSize = 23; state->numberOfDisparities = 96; state->preFilterSize =25; state->preFilterCap = 63; state->minDisparity = 0; state->textureThreshold = 20; state->uniquenessRatio = 10; state->speckleWindowSize = 25; state->speckleRange = 8; state->disp12MaxDiff = 1; cvFindStereoCorrespondenceBM(Lgray, Rgray, Stereo, state); cvNamedWindow("cvHoughCircles", 1); cvShowImage("cvHoughCircles", Stereo); cvNamedWindow("left", CV_WINDOW_AUTOSIZE); cvNamedWindow("right", CV_WINDOW_AUTOSIZE); cvShowImage("left", Lgray); cvShowImage("right", Rgray); cvWaitKey(0); cvReleaseImage(&Limage); cvReleaseImage(&Rimage); cvReleaseImage(&Lgray); cvReleaseImage(&Rgray); cvDestroyAllWindows(); return 0;
×