【问题标题】:imshow function in openCVopenCV中的imshow函数
【发布时间】:2013-03-18 09:10:16
【问题描述】:

我正在使用 imshow 函数在 OpenCV 中显示图像。它工作正常,不过有一点问题:我为图像写的标题显示不正确。

例如,当我写“原始”或“倒置”时,它们会在开头显示一些额外且难以理解的数据。但是,当我写“阈值图像”时,会显示一长串难以理解的单词而不是标题...

它不会影响其他任何东西,但对我来说似乎很奇怪。你知道为什么会这样吗?

这是我的代码:

IplImage* image=cvLoadImage("Black&White.jpg");
Mat image1;
image1=Mat(image,false);
imshow("Image",image1);
cvWaitKey(0);

【问题讨论】:

  • 如果没有更多信息,我们无法为您提供帮助。向我们展示您的代码

标签: c++ opencv


【解决方案1】:

首先,您可以互换使用 C 和 C++ 库 - IpIImage 属于 C 而 Mat 属于 C++,这可能是您的问题的根源。相反,尝试只使用 C++ 接口,您的代码将如下所示:

Mat image = imread("Black&White.jpg"); 
imshow("Image",image);
waitKey(0);

这应该可以解决您的问题,如果没有,请尝试使用 C 接口

IplImage* image = cvLoadImage("Black&White.jpg");
cvNamedWindow( "Image", CV_WINDOW_AUTOSIZE );
cvShowImage("Image", image);
cvWaitKey(0);

【讨论】:

  • 好吧,我已经尝试了很多次,但是函数 imread() 无法在我的编译器中正常工作:( 它不选择图像!!!而 cvLoadImage() 从相同的位置没有任何问题,这就是为什么我以 IplImage 格式读取图像,然后将其转换为 Mat 形式...@Matt McGrath
  • 嗨 Aayman,好的,我将编辑我的答案以添加 C 代码,因为 imread 不适合您
  • 谢谢 :) cvShowImage() 工作正常,但不显示 Mat 图像...@Matt McGrath
  • 不建议在 C 和 C++ 库之间进行交叉,您可能不得不避免使用 Mat 图像而只使用 IplImage 以及它的 cvLoadImage 和 cvShowImage
  • 您确定您提供的路径正确吗?您是否注意区分大小写?另外,为了和平,您可以尝试从同一文件中删除 & 吗?
【解决方案2】:

您是否真的检查过您使用了正确的文件链接? 就我而言,我通常通过以下方式进行检查:

image = imread( "C:\\\CloudStation\\\Bestanden\\\VisualStudio2010\\\Projects\\\TMerger\\\Debug\\\black_and_white.tif")

所以就我而言,我必须使用双反斜杠。

希望对你有帮助。

问候, 弗洛里斯。

【讨论】:

    猜你喜欢
    • 2017-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-17
    • 2019-09-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多