解决Opencv+Python cv2.imshow闪退问题

Opencv+Python cv2.imshow闪退

 # 读入原始图像
 origineImage = cv2.imread('./pic/6.jpeg')
 # 图像灰度化
 # image = cv2.imread('test.jpg',0)
 image = cv2.cvtColor(origineImage, cv2.COLOR_BGR2GRAY)
 #image.save('./pic/gray.jpg')
 cv2.imshow('gray', image)
 # 将图片二值化
 retval, img = cv2.threshold(image, 127, 255, cv2.THRESH_BINARY_INV)
 cv2.imshow('binary', img)

程序运行到这,图片闪退,在cv.imshow()后加入cv2.waitKey()即可

 origineImage = cv2.imread('./pic/6.jpeg')
 # 图像灰度化
 # image = cv2.imread('test.jpg',0)
 image = cv2.cvtColor(origineImage, cv2.COLOR_BGR2GRAY)
 #image.save('./pic/gray.jpg')

 cv2.imshow('gray', image)
 cv2.waitKey()
 # 将图片二值化
 retval, img = cv2.threshold(image, 127, 255, cv2.THRESH_BINARY_INV)
 cv2.imshow('binary', img)
 cv2.waitKey()

waitKey()的作用

1、waitKey()–这个函数是在一个给定的时间内(单位ms)等待用户按键触发;如果用户没有按下 键,则接续等待(循环)

2、如果设置waitKey(0),则表示程序会无限制的等待用户的按键事件

补充知识:OpenCV中 imshow函数运行中断的解决方法

刚开始接触OpenCV,遇到了个小问题,想把解决方法分享给大家。在此之前已经用VS2010配置好了OpenCV并且测试通过,运行顺畅,突然有一天就不好用了,生成成功但是运行不出结果。

单步调试发现是 imshow函数运行中断。重新配置了3次,VS卸载了两回,耗了两天时间,试了百度里的各种办法,都失败了。最后发现是图片放错了位置...汗...

结合之前的百度,加上自己的总结,遇到这种问题大概有三种解决办法:

1. 有位博主说这算是opencv的一个bug,工程属性里面关于带d和不带d的lib文件的附加依赖项的问题。当得到这样的错误时,可以把调试方式改一改,把debug和release互换下试一试

2. 有可能是图片的后缀名的问题,有时候电脑默认隐藏后缀名,在程序中写的是xxx.jpg,而图片保存的是xxx.jpg.jpg,这种情况很容易被忽略。

3.还有就是图片存放的路径不对,将需要载入的图片放在项目下,与项目名同名的文件夹下。这个就是我犯的低级错误...

以上这篇解决Opencv+Python cv2.imshow闪退问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持菜鸟教程(cainiaojc.com)。

声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:notice#cainiaojc.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。