4 結構光 遇到的問題

2021-07-30 09:21:43 字數 2701 閱讀 6946

折騰了結構光視覺已有乙個月之久了,**不易,且調且珍惜啊!遇到的主要問題如下:

1.opencv的速度真心慢,無論是相移還是格雷碼,開源的要慎重啊!

2.立體矯正之後的進行三維重建,failed!這個問題很致命,目前一直沒搞懂,問題出在哪,繼續摸索吧!

// 初始化

size_t numberofpatternimages = graycode_decoder->getnumberofpatternimages();//42

vector> captured_pattern;

captured_pattern.resize(2);

captured_pattern[0].resize(numberofpatternimages);

captured_pattern[1].resize(numberofpatternimages);

// 全白影象,白色圖案編碼

mat color = imread(imagelist[numberofpatternimages], imread_color);

size imagessize = color.size();

// 立體校正

mat r1, r2, p1, p2, q;

rect validroi[2];

stereorectify(cam1intrinsics, cam1distcoeffs, cam2intrinsics, cam2distcoeffs, imagessize, r, t, r1, r2, p1, p2, q,

0, -1, imagessize, &validroi[0], &validroi[1]);

mat map1x, map1y, map2x, map2y;

initundistortrectifymap(cam1intrinsics, cam1distcoeffs, r1, p1, imagessize, cv_32fc1, map1x, map1y);

initundistortrectifymap(cam2intrinsics, cam2distcoeffs, r2, p2, imagessize, cv_32fc1, map2x, map2y);

// 匯入影象

for (size_t i = 0; i < numberofpatternimages; i++)

remap(captured_pattern[1][i], captured_pattern[1][i], map1x, map1y, cv_inter_linear, border_constant, scalar(0, 0, 0));

remap(captured_pattern[0][i], captured_pattern[0][i], map2x, map2y, cv_inter_linear, border_constant, scalar(0, 0, 0));

} // 匯入全白全黑背景圖案

vectorblackimages;

vectorwhiteimages;

blackimages.resize(2);

whiteimages.resize(2);

whiteimages[0] = imread(imagelist[numberofpatternimages], imread_grayscale);//42

blackimages[0] = imread(imagelist[numberofpatternimages + 1], imread_grayscale);//43

whiteimages[1] = imread(imagelist[2 * numberofpatternimages + 2], imread_grayscale);//86

blackimages[1] = imread(imagelist[2 * numberofpatternimages + 2 + 1], imread_grayscale);//87

//inter_nearest, border_constant, scalar());

remap(color, color, map2x, map2y, inter_nearest, border_constant, scalar());

remap(whiteimages[0], whiteimages[0], map2x, map2y, cv_inter_linear, border_constant, scalar(0, 0, 0));

remap(whiteimages[1], whiteimages[1], map1x, map1y, cv_inter_linear, border_constant, scalar(0, 0, 0));

remap(blackimages[0], blackimages[0], map2x, map2y, cv_inter_linear, border_constant, scalar(0, 0, 0));

remap(blackimages[1], blackimages[1], map1x, map1y, cv_inter_linear, border_constant, scalar(0, 0, 0));

// 解碼

mat disparitymap;

bool decoded = graycode_decoder->decode(captured_pattern, disparitymap, blackimages, whiteimages, structured_light::decode_3d_underworld);

資料結構課內實驗遇到的問題

格式 typedef enum name 例子 typedef enum weekday 要引用列舉裡的變數,只需傳入整型,預設第乙個為0,後面依次遞增 也可以修改第乙個預設值 typedef enum weekday 這樣monday值就變為1,tuesday值變為2想用指標來儲存內容要給指標分配...

遇到的問題

1 若class cnmdevctrlprotocol virtual public cnetcomm則starttimer編譯通不過 2 activex在ie下載入多個,相當於多執行緒,所以這時候的activex不要使用全域性變數,當時如果編寫動態庫也不要使用全域性變數 3 btn灰顯或sleep...

遇到的問題

這個文章用於記錄在學習和使用c 的時候遇到的一些問題,以及解決方法,記載了一些非常零散的知識點,沒有主題。在c 11中,有一種新的方法在用new運算子申請結構體內存的同時對其初始化。其格式為 struct car car p new car 但是如果結構體中包含了字元陣列 字串 就不能使用這種格式,...