关于opencv读取图片,无法正常显示,窗口显示灰色的问题

本人刚开始学习OpenCV3,主要是跟着毛星云老师的《OpenCV3编程入门》进行学习,学习过程中遇到一些问题,希望能在这里跟大家分享,同时希望得到有效的解答。由于本人是个小白,有什么不对的地方,还望指教,谢谢!!

话不多说,进入正题!

——————————————————————————————————————————

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


环境:OpenCV 3.4.1 +VS2015+Windows x64

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


先上图看一看是什么情况吧:


此时图片显示失败,呈现灰色。

——————————————————————————————————————————

1、图片路径错误导致图片读取失败问题

本人在网上看了很多博文以后,发现普遍的解释是:图片未找到,图片读取失败等,针对于此问题,本人做了如下尝试:

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


但发现并非图片读取的问题,大家可以将读取的图片信息输出到控制台看一下,即std::cout<<srcImage;

std::cout<<srcImage;
imshow("show",srcImage);

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

2、非图片读取失败的其他解决方案

其中一篇博文提出的解决方案为

	Mat srcImage = imread ("1.jpg");
	if ( srcImage.empty() )
	{
		std::cout << "图片读取失败!" << "\n";
		return -1;
	}
        namedWindow("yuantupian",1);//显示一个窗口
	imshow ("show", srcImage);

博主说问题解决了,而我尝试的效果为(并未解决):

https://blog.csdn.net/mao_hui_fei/article/details/77478750?utm_source=debugrun&utm_medium=referral (附上该博文的连接)


当然博主也不清楚为什么他的尝试成功了,如果大家知道,还望告知。

3、我的解决方案及希望被解答的问题

在经过很多尝试过后,我有点脑壳儿疼了。怎么刚开始学,就这么坎坷。当然,要学肯定不能放弃了,身边也没有人可以问,就自己多试试。不过最后还真的给我试出来了,上代码:

#include "opencv2\opencv.hpp"
using namespace cv;

int main ()
{
	Mat srcImage = imread ("1.jpg");
	if ( srcImage.empty() )
	{
		std::cout << "图片为空" <<"\n";
		return -1;
	}
	imshow ("show", srcImage);

	//system ("pause");
	waitKey ( 3000 );
	return 0;
}

运行效果为:


成功显示。

从代码上来看,应该是   system("pause");    和    waitKey(30);    两个函数的问题。

这我就搞不明白了,所以希望了解的各位大佬帮忙解答一下,万分感谢。

——————————————————————————————————————————

附加:

waitKey()函数

函数功能:

waitKey()函数的功能是不断刷新图像,频率时间为delay,单位为ms。

返回值为当前键盘按键值。

如果delay<0,等待时间无限长,返回值为按键值

经常程序里面出现   if( waitKey(10) >= 0 ) 是指10ms内按任意键进入此 if 块。


要解决opencv读取图片显示不全的问题,可以尝试以下几个步骤。首先,确保图像路径中的反斜杠"\ "已经被替换为正斜杠"/"或双斜杠"//"[2。如果替换后仍然出现错误提示,可以尝试第二种解决方法。在显示图像之前,添加namedWindow指令,并设置窗口属性为WINDOW_NORMAL。然后使用imread函数读取图像,并利用imshow函数显示图像。最后,使用waitKey函数等待用户按下键盘,然后使用destroyAllWindows函数关闭所有图像窗口。通过以上步骤,你应该能够解决opencv读取图片显示不全的问题123 #### 引用[.reference_title] - *1* [Qt + OpenCV 读取并显示图像](https://blog.csdn.net/wsp_1138886114/article/details/123047830)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item] - *2* [OpenCV图像无法读取,显示过大,显示不全(Python)](https://blog.csdn.net/weixin_45814496/article/details/117947872)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item] - *3* [【OpenCV】图像显示不全](https://blog.csdn.net/weixin_45410711/article/details/128768563)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item] [ .reference_list ]
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值