读取一个图片文件,显示在一个窗口(opencv生成的)

//下面3行 增加在CPP头部
  #include <opencv2/opencv.hpp>
  #include <opencv2/highgui/highgui_c.h>
  using namespace cv;

//下面的代码添加在功能需要的地方,这个窗口和windows程序的窗口不一样,只是一个简单的将图片显示在一个独立的窗口。

//菜单、按钮响应功能都可以

  Mat matPic;  //声明一个Mat类

  matPic = imread("mypic.jpeg",1);    //读取一个图片文件

  namedWindow(WND_NAME, WINDOW_AUTOSIZE);    //WND_NAME 定义个一个窗口名称 #define WND_NAME  MyPicWND
  imshow(WND_NAME, matMyPic);                       

// imshow函数有这样一句说明: If the window was not created before this function, it is assumed creating a window with cv::WINDOW_AUTOSIZE. [据该函数的说明,前一行代码不要也可以 显示图片在 该函数命名的窗口。]  .

//编译、调试、执行报错N次,主要问题:

  1、包含文件目录到 ......\build\include 深度就好,不要到 opencv.hpp所在的目录深度即 ......\build\include\opencv2,被使用的 opencv.hpp 头文件有 #including <opencv2/core.hpp> 将找不到这个文件,整个文件体系都是 从 include目录开始的。否则,你需要修改opencv官方给的头文件内容。

  2、库文件目录,设置到  lib,里面应该有2个文件基本相同的 *.lib , *d.lib 的文件。设定到所在目录即可。 

  3、编译连接器也应当知晓前面那个库的位置,以便链接生成。

  4、编译器需要 附加项 的位置,opencv\build\x64\vc16\bin,这里有两个lib文件,*.lib  和 *d.lib ,一个对应用于Release,一个用于Debug。一定要对应设置,否则编译不报错,执行时报错,调试都找不到错误原因。我这里是调试和执行时,std::alloc ( ) 错误,找了老半天。

   5、缺少运行库,执行时报错。我这里是:“ 由于找不到vcruntime140_1D.dll,无法继续执行代码。重新安装程序可能会解决此问题 ”。 建议从  下载拷贝到 C:\WINDOWS\SYSTEM32 目录下面。

posted @ 2024-02-25 17:13  O-Y  阅读(7)  评论(0编辑  收藏  举报