qt - 带有 Qt 函数 cv::erode() 和 cv::dilate() 的 OpenCV 崩溃

标签 qt image-processing opencv

#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>

#include <QDebug>

int main()
{
    // Read input image
    cv::Mat img= cv::imread("D:\\extra\\Procesare de imagine\\altele\\images\\group.jpg");
    if (!img.data)
    {
        qDebug("no image");
        return 0;

    }

    // Display the image
    cv::namedWindow("Image");
    cv::imshow("Image",img);

    // Erode the image
    cv::Mat eroded;
    cv::erode(img,eroded,cv::Mat());


    cv::waitKey();
    return 0;
}

您好,我在使用 opencv(在 Qt 中)函数 erode() 和 dilate() 时遇到以下问题。我使用 msvc10 编译器。我尝试运行一个简单的代码,但在 cv::erode(img,eroded,cv::Mat()) 行崩溃了。我没有收到任何错误消息,只有一个对话框显示“program.exe 已停止工作”。我转到“调试程序”,我得到调用堆栈 tbb.dll([下面的框架可能不正确和/或丢失,没有为 tbb.dll 加载符号]: ).我提到从一开始我就在 Debug模式下构建时遇到问题(imread 在 Debug模式下不起作用,只有 cvLoadImage),函数 cv::threshold() 以同样的方式崩溃,代码非常简单。 我读到可以通过复制 tbb.dll 旁边的 tbb.pdb 来解决,但它不起作用。

最佳答案

只是添加到 Kamyar 的评论中:

如果您在调试配置中编译,您可能还必须使用名为 tbb_debug.dll 的 tbb 调试版本。对于适用于 Windows 的 OpenCV 2.4.1,它可以在 build\common\tbb 下的 OpenCV 目录中找到。

关于qt - 带有 Qt 函数 cv::erode() 和 cv::dilate() 的 OpenCV 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12099097/

相关文章:

python - 如何从文本图像 OpenCV 中删除非直对角线?

java - 如何使用 Java opencv 让 doOCR 正常工作

c++ - 如何让 C++ 等待来自 QML 的用户输入

qt - 带有信号参数和额外参数的 QSignalMapper

c++ - 从 Qt 中的文件中读取整数

python - openCV 中的图像分割

objective-c - Core Graphics 点彩化 CGImage 效果

qt - 为什么我的 sqlite 查询在 Qt5 中这么慢?

algorithm - 如何将相似面孔的照片组合在一起

OpenCV BFMatcher - 忽略误报