关于opencv的win32下控制台应用问题

“ConsoleApplication2.exe”(Win32): 已加载“D:\vs_project\ConsoleApplication2\Debug\ConsoleApplication2.exe”。已加载符号。
“ConsoleApplication2.exe”(Win32): 已加载“C:\Windows\SysWOW64\ntdll.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:\Windows\SysWOW64\kernel32.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:\Windows\SysWOW64\KernelBase.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:\Windows\SysWOW64\msvcp140d.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“D:\opencv\build\x86\vc12\bin\opencv_imgproc248.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“D:\opencv\build\x86\vc12\bin\opencv_core248.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“D:\opencv\build\x86\vc12\bin\opencv_highgui248.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:\Windows\SysWOW64\vcruntime140d.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:\Windows\SysWOW64\advapi32.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:\Windows\SysWOW64\msvcrt.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:\Windows\SysWOW64\sechost.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:\Windows\SysWOW64\rpcrt4.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:\Windows\SysWOW64\user32.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:\Windows\SysWOW64\sspicli.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:\Windows\SysWOW64\gdi32.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:\Windows\SysWOW64\cryptbase.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:\Windows\SysWOW64\ucrtbased.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:\Windows\SysWOW64\bcryptprimitives.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:\Windows\SysWOW64\ole32.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:\Windows\SysWOW64\combase.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:\Windows\SysWOW64\msvcp120.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:\Windows\SysWOW64\msvcr120.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:\Windows\SysWOW64\oleaut32.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.10586.0_none_811bc0006c44242b\comctl32.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:\Windows\SysWOW64\msvfw32.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:\Windows\SysWOW64\avifil32.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:\Windows\SysWOW64\avicap32.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:\Windows\SysWOW64\shell32.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:\Windows\SysWOW64\cfgmgr32.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:\Windows\SysWOW64\msacm32.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:\Windows\SysWOW64\winmm.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:\Windows\SysWOW64\windows.storage.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:\Windows\SysWOW64\shlwapi.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:\Windows\SysWOW64\kernel.appcore.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:\Windows\SysWOW64\winmmbase.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:\Windows\SysWOW64\winmmbase.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:\Windows\SysWOW64\winmmbase.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:\Windows\SysWOW64\SHCore.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已卸载“C:\Windows\SysWOW64\winmmbase.dll”
“ConsoleApplication2.exe”(Win32): 已卸载“C:\Windows\SysWOW64\winmmbase.dll”
“ConsoleApplication2.exe”(Win32): 已加载“C:\Windows\SysWOW64\powrprof.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:\Windows\SysWOW64\profapi.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:\Windows\SysWOW64\imm32.dll”。无法查找或打开 PDB 文件。
线程 0x4b98 已退出,返回值为 -1 (0xffffffff)。
线程 0x1bf8 已退出,返回值为 -1 (0xffffffff)。
线程 0x4548 已退出,返回值为 -1 (0xffffffff)。
程序“[2572] ConsoleApplication2.exe”已退出,返回值为 -1 (0xffffffff)。

报这样的错是什么意思?
源码如下
#include
#include
#include
#include

//输入形参为pass by conference-const,保证输入的图像不会被修改,并且为传递引用
void sharpenImage0(const cv::Mat &image, cv::Mat &result)
{
//为输出图像分配内存
result.create(image.size(), image.type());

for (int j = 1; j<image.rows - 1; ++j)
{
    const uchar *previous = image.ptr<const uchar>(j - 1);
    const uchar *current = image.ptr<const uchar>(j);
    const uchar *next = image.ptr<const uchar>(j + 1);
    uchar *output = result.ptr<uchar>(j);
    for (int i = 1; i<image.cols - 1; ++i)
    {
        *output++ = cv::saturate_cast<uchar>(5 * current[i] - previous[i] - next[i] - current[i - 1] - current[i + 1]);  //saturate_cast<uchar>()保证结果在uchar范围内
    }
}
result.row(0).setTo(cv::Scalar(0));
result.row(result.rows - 1).setTo(cv::Scalar(0));
result.col(0).setTo(cv::Scalar(0));
result.col(result.cols - 1).setTo(cv::Scalar(0));

}

void sharpenImage1(const cv::Mat &image, cv::Mat &result)
{
//创建并初始化滤波模板
cv::Mat kernel(3, 3, CV_32F, cv::Scalar(0));
kernel.at(1, 1) = 5.0;
kernel.at(0, 1) = -1.0;
kernel.at(1, 0) = -1.0;
kernel.at(1, 2) = -1.0;
kernel.at(2, 1) = -1.0;

result.create(image.size(), image.type());

//对图像进行滤波
cv::filter2D(image, result, image.depth(), kernel);

}

int main(int argc, char* argv[])
{
cv::Mat image = cv::imread("../boldt.jpg");
cv::Mat image_gray;
image_gray.create(image.size(), image.type());

if (!image.data)
    return -1;
if (image.channels() == 3)
    cv::cvtColor(image, image_gray, CV_RGB2GRAY);

cv::Mat result;
result.create(image_gray.size(), image_gray.type());
double time_ = static_cast<double>(cv::getTickCount());
sharpenImage0(image_gray, result);
time_ = 1000 * (static_cast<double>(cv::getTickCount()) - time_) / cv::getTickFrequency();
std::cout << "time = " << time_ << "ms" << std::endl;

cv::namedWindow("Image 1");
cv::imshow("Image 1", result);

cv::Mat result1;
result1.create(image_gray.size(), image_gray.type());
time_ = static_cast<double>(cv::getTickCount());
sharpenImage1(image_gray, result1);
time_ = 1000 * static_cast<double>(cv::getTickCount() - time_) / cv::getTickFrequency();
std::cout << "time = " << time_ << "ms" << std::endl;

cv::namedWindow("Image 2");
cv::imshow("Image 2", result1);

cv::waitKey();
return 0;

}

2个回答

内存分配的问题,指针的问题等

在main里设置一个断点,看看哪里退出的,然后再去看调用失败的函数的帮助,看看那个参数有问题。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问