多语言展示
当前在线:1237今日阅读:84今日分享:32

OpenCV 之 VS2017环境配置OK,图片却显示纯灰色

OpenCV 之 VS2017环境配置OK,图片却显示灰色。在win 10 x64位上,使用Visual Studio 2017 开发Opencv ,在环境配置正确的情况下,读取到的图片却显示不正常,为纯灰白色,分析原因,在使用了 cin.get() 和 system('pause') 等待输入,保证运行完不立即关闭窗口时候,因为机制的原因显示图片会阻塞,可能就导致显示为纯灰白色,然后更改为 opencv 的 waitKey() 用来 等待(opencv 自带),保证运行完不立即关闭窗口,具体过程如下
工具/原料
1

opencv

2

vistual studio 2017

方法/步骤
1

打开 Visual Studio 2017 新建一个工程,具体如下图

2

配置opencv所需环境,在属性中配置头文件目录、库目录、和链接器—附加依赖项;头文件的三个目录……\opencv\build\include、……\opencv\build\include\opencv、……\opencv\build\include\opencv2,库目录 ……\opencv\build\x64\vc14\lib,链接器—附加依赖项中输入库目录下的 opencv_world345d.lib(测试版本Debug使用带d的,发布版本Release使用不带d的),具体如下图

3

编写脚本,读取图片,并显示图片,代码中使用了 cin.get() 来暂停查看结果,运行结果显示图片为纯灰白色,具体如下图

4

修改脚本,把 cin.get() 更改为 system('pause') 来暂停查看结果,运行结果显示图片为纯灰白色,具体如下图

5

最后把 cin.get() 和 system('pause') 修改为 opencv 自带的 waitKey(),此时,图片显示就正常了,具体如下图

6

脚本具体代码如下:#include 'pch.h'#include #include using namespace cv;using namespace std;int main(){ // 使用绝对路径 imread 读取图片信息 Mat srcMat = imread('C:/Users/xan/Desktop/Data Is Here/Images/Circle.jpg'); // 判断读取的数据,为空则是提示,并且返回 if (srcMat.empty()) { cout << '获取图片为空,请检查\n'; cin.get(); // 等待输入,保证运行完不立即关闭窗口,看不到结果 return -1; } // 不为空,则输出图片尺寸和显示图片 cout << 'src.size ' << srcMat.size; imshow('TestImage', srcMat); //cin.get(); // 等待输入,保证运行完不立即关闭窗口,看不到结果 //system('pause'); // 等待输入,保证运行完不立即关闭窗口,看不到结果 waitKey(); // 等待(opencv 自带),保证运行完不立即关闭窗口,看不到结果 return 0;}

注意事项
1

您的支持,是我们不断坚持知识分享的动力,若帮到您,还请帮忙投票有得;若有疑问,请留言

2

注意在暂停看图片显示结果的时候,最后使用 opencv 自带的 waitKey()

推荐信息