折騰了結構光視覺已有乙個月之久了,**不易,且調且珍惜啊!遇到的主要問題如下:
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 但是如果結構體中包含了字元陣列 字串 就不能使用這種格式,...