#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 加载符号] : )。我提到从一开始我就遇到了在调试模式下构建的问题(imread 在调试中不起作用,只有 cvLoadImage),函数 cv::threshold() 以同样的方式崩溃,代码非常简单。我读到可以通过将 tbb.pdb 复制到 tbb.dll 旁边来解决,但它不起作用。