gpt4 book ai didi

c++ - 从 Iplimage 到 Mat 的转换不保留深度信息

转载 作者:行者123 更新时间:2023-11-28 00:50:52 24 4
gpt4 key购买 nike

好的...我不知道我错过了什么,但是 opencv 文档说您可以从 IplImage 构造一个 Mat。我有一个 IplImage,但是在构造垫之后,它丢失了深度信息。在将深度信息传递给 calcHist 函数之前,我需要检查深度信息。

cout<<"image depth:"<<image->depth<<endl;
cout<<"image size: "<<image->height<<" "<<image->width<<endl;

Mat src(image);
cout<<"src depth:"<<src.depth()<<endl;
cout<<"src size: "<<src.size().height<<" "<<src.size().width<<endl;

我的输出看起来像这样。请注意,深度信息已消失:

image depth:8
image size: 257 109
src depth:0
src size: 257 109

最佳答案

基本上是正确的,因为 CV_8U==0。参见 here了解更多详情。

  • 当您在 IplImage 结构中加载图像时,深度设置为 IPL_DEPTH_8U,即 8。
  • 加载Mat结构的图片时,深度为CV_8U,即0。

我对一张普通图片做了一个小测试:

Mat frame=imread(szImagefile,CV_LOAD_IMAGE_GRAYSCALE);
cout<<"image depth:"<<frame.depth()<<endl;

结果:

image depth:0

关于c++ - 从 Iplimage 到 Mat 的转换不保留深度信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14160182/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com