首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用opencv CUDA & BM得到奇怪的结果

使用opencv CUDA & BM得到奇怪的结果
EN

Stack Overflow用户
提问于 2014-02-23 08:48:04
回答 1查看 943关注 0票数 2

我希望你能帮我找出为什么CUDA黑石会给我奇怪的结果。我只想生成两个校正后的图像的视差图。但结果如下:

下面是这段代码:

代码语言:javascript
运行
复制
Mat img1, img2;
img1 = imread("img1.jpg", IMREAD_GRAYSCALE);
img2 = imread("img2.jpg", IMREAD_GRAYSCALE);
cuda::GpuMat d_left, d_right;
Ptr<cuda::StereoBM> bm;
bm = cuda::createStereoBM(64, 5);
Mat disp(img1.size(), CV_8U);
cuda::GpuMat d_disp(img1.size(), CV_8U);
d_left.upload(img1);
d_right.upload(img2);
bm->compute(d_right, d_left, d_disp);
cuda::drawColorDisp(d_disp, d_disp, 64);
d_disp.download(disp);
resize(disp, disp, Size(0,0), 0.3, 0.3, 1);
imshow("disparity", disp);
waitKey(0);
EN

回答 1

Stack Overflow用户

发布于 2019-12-18 18:09:03

据我所知,这是一个显示和图像深度的问题(无符号短,浮点数等)下载后将其在0到1之间进行标准化,然后乘以255并转换为uint8

代码语言:javascript
运行
复制
Mat displayMat;
double minVal, maxVal;
minMaxLoc(disp, &minVal, &maxVal);
disp = 255.*(disp - minVal)/(maxVal - minVal);
disp.convertTo(displayMat, CV_8U);
imshow("disparity", displayMat)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21962712

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档