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

问题描述

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

“ConsoleApplication2.exe”(Win32): 已加载“D:vs_projectConsoleApplication2DebugConsoleApplication2.exe”。已加载符号。
“ConsoleApplication2.exe”(Win32): 已加载“C:WindowsSysWOW64
tdll.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:WindowsSysWOW64kernel32.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:WindowsSysWOW64KernelBase.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:WindowsSysWOW64msvcp140d.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“D:opencvuildx86vc12inopencv_imgproc248.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“D:opencvuildx86vc12inopencv_core248.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“D:opencvuildx86vc12inopencv_highgui248.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:WindowsSysWOW64vcruntime140d.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:WindowsSysWOW64advapi32.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:WindowsSysWOW64msvcrt.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:WindowsSysWOW64sechost.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:WindowsSysWOW64
pcrt4.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:WindowsSysWOW64user32.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:WindowsSysWOW64sspicli.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:WindowsSysWOW64gdi32.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:WindowsSysWOW64cryptbase.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:WindowsSysWOW64ucrtbased.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:WindowsSysWOW64cryptprimitives.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:WindowsSysWOW64ole32.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:WindowsSysWOW64combase.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:WindowsSysWOW64msvcp120.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:WindowsSysWOW64msvcr120.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:WindowsSysWOW64oleaut32.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:WindowsWinSxSx86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.10586.0_none_811bc0006c44242bcomctl32.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:WindowsSysWOW64msvfw32.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:WindowsSysWOW64avifil32.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:WindowsSysWOW64avicap32.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:WindowsSysWOW64shell32.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:WindowsSysWOW64cfgmgr32.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:WindowsSysWOW64msacm32.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:WindowsSysWOW64winmm.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:WindowsSysWOW64windows.storage.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:WindowsSysWOW64shlwapi.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:WindowsSysWOW64kernel.appcore.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:WindowsSysWOW64winmmbase.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:WindowsSysWOW64winmmbase.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:WindowsSysWOW64winmmbase.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:WindowsSysWOW64SHCore.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已卸载“C:WindowsSysWOW64winmmbase.dll”
“ConsoleApplication2.exe”(Win32): 已卸载“C:WindowsSysWOW64winmmbase.dll”
“ConsoleApplication2.exe”(Win32): 已加载“C:WindowsSysWOW64powrprof.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:WindowsSysWOW64profapi.dll”。无法查找或打开 PDB 文件。
“ConsoleApplication2.exe”(Win32): 已加载“C:WindowsSysWOW64imm32.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;

}

解决方案

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

解决方案二:

继续讨论win32下的多线程编程问题
win32下用mfc的类出现的问题

解决方案三:

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

时间: 2024-09-15 21:45:23

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

我来写个详细的: Win32下具体实现Apache的用户验证(原创)

apache|原创 Win32下具体实现Apache的用户验证相信大家采用的验证方法很多种,而在Win32环境下如何设置Apache用户验证的介绍很少,手册上介绍的也是Unix和linux环境下的配置,象我这样在win32下苦苦摸索Apache的人应该不少,我根据自己的经验介绍一下自己是如何在Win32环境下实现apache的用户验证功能的. 方法一:以单用户方式实现某目录只能由某个用户或几个用户访问.假设Apache的web根目录为 d:/home,对应URL为 http://localhos

Win32下Foxbase+数据库浏览程序的编写

程序|数据|数据库 一.目的硬件:CPU (Cyrix 200MHz ), 内存16M,硬盘4G要求:在WINDOWS98的资源管理器中鼠标双击任何一个Foxbase+数据库文件图标(每个文件数据记录在一万条以下),程序打开数据库文件并显示数据库内容. 二.步骤Foxbase+数据库文件格式(参照Mark Sadler的文件格式说明和相应C语言源程序文件)编程中发生的问题:以下是Mark Sadler的DBF.H文件部分内容:typedef unsigned char UCHAR; struct

ruby-【RUBY】Win32下,Process.kill(&amp;amp;quot;INT&amp;amp;quot;,pid)报错

问题描述 [RUBY]Win32下,Process.kill("INT",pid)报错 正在学习Ruby,使用的是1.9.3版本的,在win7 32位系统下=.= 首先,我用WEBrick起了一个WEB服务器,如下. server = WEBrick::HTTPServer.new(:Port =>1235) trap("INT"){server.shutdown} server.start 然后获得了一个pid=16452. 由于直接在IDE里运行的,我不能

win 网络编程-win32下有没有既能监听标准输入又能监听套接字的机制呢?

问题描述 win32下有没有既能监听标准输入又能监听套接字的机制呢? 在下win上菜到不能鸟的菜鸟一枚,求教各位大虾如何能够在win既监听标准输入又监听网络套接字呢?类似unix下的select,不过我知道win上也有个缩水版的,只能监听套接字,而不能监听文件句柄,所以想各位求助.

studio-请问 VisualStudio2013,中C++Win32,控制台应用程序,的应用程序设置,点不开?

问题描述 请问 VisualStudio2013,中C++Win32,控制台应用程序,的应用程序设置,点不开? 解决方案 可能控制台程序默认是不能设置的吧,那个选项是给其他模板程序使用的. 解决方案二: 我也一样的问题,在线等 解决方案三: VS没有安装好吧.用安装包修复一下 解决方案四: 重新下载安装包,然后重装.或者,在虚拟机,如VMWare 中试试现在的安装包,也有可能是系统的问题. 解决方案五: 安装的时候选择VC++了吗 解决方案六: 能控制台程序本身就没有什么设置的,创建后,直接写代

Win32下Apache 2.0.35 php 4.2.0安装扎记

Win32下Apache 2.0.35 php 4.2.0安装扎记1.安装界面比较有好,分别添入ServerAdmin.ServerName.post即可     如果你起用了DNS,会将DNS的设置作为默认配置,这点要注意.     当可见到默认主页时表明安装成功,一般没有问题2.默认的主页位置在[d]:/Program Files/Apache Group/Ahache2/htdocs     若需要修改可在httph.conf文件中修改(下同)     DucumentRoot "你的主页

Win32下病毒设计入门_安全相关

   Win32下病毒设计入门  本文假定你对dos下的病毒和386PM有一定的了解.  1.感染任何一个病毒都需要有寄主,把病毒代码加入寄主程序中 (伴侣病毒除外).  以下说明如何将病毒代码嵌入PE文件中,有关PE文件的结构请看以前的文章. PE文件的典型结构: MZ Header DOS STUB CODE PE HEADER OPTIONAL HEADER SECTION TABLE SECTION 1 SECTION 2 ... IMPORT TABLE EXPORT TABLE 和D

OpenCV x64 vs2010 下打开摄像头录制视频写成avi(代码为转载)

首先参照下面这里进行opencv x64位机器下面的配置 http://wiki.opencv.org.cn/index.php/VC_2010%E4%B8%8B%E5%AE%89%E8%A3%85OpenCV2.4.4   参考到环境变量处的配置之后,文章中所说的x64位机器环境的配置就不是很清晰了,我自己摸索了一些,其实vs2010本身就不是一个64位的编译器.       所以我认为,在64位的win7旗舰版系统中,这个编译器就是支持64位程序的编译运行.   但是vs2010中没有能够直

win32下进程间通信(共享内存)实例分析_C 语言

一.概述 很多情况下在Windows程序中,各个进程之间往往需要交换数据,进行数据通讯.WIN32 API提供了许多函数使我们能够方便高效的进行进程间的通讯,通过这些函数我们可以控制不同进程间的数据交换. 进程间通讯(即:同机通讯)和数据交换有多种方式:消息.共享内存.匿名(命名)管道.邮槽.Windows套接字等多种技术."共享内存"(shared memory)可以定义为对一个以上的进程是可见的内存或存在于多个进程的虚拟地址空间.例如:如果两个进程使用相同的DLL,只把DLL的代码