欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

OpenCV3读入图片,imshow无法显示的问题

程序员文章站 2022-05-20 22:10:09
...

关于OpenCV3中读入图片后,显示为灰色的问题

环境:OpenCV 3.4.1 +VS2015+Windows x64

注意:根据其他博文的说法,VS2015与OpenCV v14版本对应,所以配置环境时请注意。

先上图看一看是什么情况吧:
OpenCV3读入图片,imshow无法显示的问题
本人在网上看了很多博文以后,发现普遍的解释是:图片未找到,图片读取失败等,针对于此问题,本人做了如下尝试:


	Mat srcImage = imread ("1.jpg");
	if ( srcImage.empty() )
	{
		std::cout << "图片读取失败!" << "\n";
		return -1;
	}
	imshow ("show", srcImage);

当然,如果是图片路径错误,有两种方式:① 改成绝对路径;② 将资源放在.cpp文件同目录下,即可直接使用文件名读取资源。

既然不是读取的问题,就是其他问题,终于发现是sysem(“pause”)的问题,换成waitkey(0)就好了。
waitKey(int delay=0)函数,函数功能:

  1. 按下键的时候,焦点要落在窗口上,不能落在cmd窗口上;
  2. 必须在有窗口显示的情况下,waitKey才有作用,否则无效。比如调用cv.waitKey(0),如果此时没有活动的窗口,该函数立刻返回-1;
  3. waitKey()函数的功能是不断刷新图像,频率时间为delay,单位为ms,延时delay > 0 函数返回值为按下的键的ASCII码值,超时则返回-1。;
  4. 返回值为当前键盘按键值;
  5. 如果delay<0,等待时间无限长,返回值为按键值;
  6. 经常程序里面出现 if( waitKey(10) >= 0 ) 是指10ms内按任意键进入此 if 块;
相关标签: OpenCV opencv