可视化单个图像的深度

时间:2015-08-03 18:26:45

标签: c# emgucv

我是EmguCV,OpenCV和机器视觉的新手。我将代码从this堆栈溢出问题从C ++转换为C#。我还复制了他们的示例图像,以帮助自己了解代码是否按预期工作。

Mat map = CvInvoke.Imread("C:/Users/Cindy/Desktop/coffee_mug.png", Emgu.CV.CvEnum.LoadImageType.AnyColor | Emgu.CV.CvEnum.LoadImageType.AnyDepth);
CvInvoke.Imshow("window", map);
Image<Gray, Byte> imageGray = map.ToImage<Gray, Byte>();

double min = 0, max = 0; 
int[] minIndex = new int[5], maxIndex = new int[5];

CvInvoke.MinMaxIdx(imageGray, out min, out max, minIndex, maxIndex, null);
imageGray -= min;
Mat adjMap = new Mat();
CvInvoke.ConvertScaleAbs(imageGray, adjMap, 255/(max-min), 0);
CvInvoke.Imshow("Out", adjMap);

原始图片:

Original Image

处理后:

After processing

这对我来说看起来不像是一张深度图,它只是看起来像一个略微修改过的灰度图像,所以我很好奇我的代码出错了。如果不将图像首先转换为灰度,MinMaxIdx()不起作用,这与我上面链接的代码不同。最终,我想做的是能够从单个网络摄像头生成相对深度图。

0 个答案:

没有答案