我们在学习openCV的时候,第一步往往都是创建一个窗口。
那么在openCV中创建一个窗口只需要三个函数即可完成:)
多写一个,买三送一
创建一个窗口,只需要将上面四个函数进行排列组合即可完成,但是排列组合的方案数太多了,挑不过来啊。
那么,就请往下看…
cv2.namedWindow("new", cv2.WINDOW_AUTOSIZE)
cv2.resizeWindow("new", 640, 480)
cv2.imshow("new", 0)
cv2.destroyAllWindows()
上面这段代码就是正确的排列组合,这样就可以创建一个窗口,并且在电脑屏幕上显示(仅仅显示一瞬间(⊙o⊙)?),为什么只是显示一瞬间?这个问题后面解决,现在先把这四个函数的含义及其参数的含义解释一下。。
见名知意:namedWindow =》 给窗口起个名字呀~
所以这个函数的第一个参数就是这个窗口的名字,比如这儿的“new”
而这函数的第二个参数就是openCV所规定的一个默认参数,我们一般有两种选择:
WINDOW_AUTOSIZE:不可以用鼠标改变窗口大小
WINDOW_NORMAL:可以用鼠标改变窗口大小
见名知意:resizeWindow =》 给窗口确定大小呀~
如果要给窗口确定大小,那么第一个参收就是告诉这个函数,我们要确定那个窗口的大小,所以第一个参数就是窗口名。
而第二三个参数当然就是窗口的宽和高。。。
前两个函数以及把窗口创建好了,那么这一步自然而然就到了显示窗口的时候。
imshow,也就是 image show。。。
所以第一个参数就是要显示的窗口的名字。而此处第二个参数为0,0嘛,就是窗口中啥都没有,一片空白呗,没什么大不了的。
窗口都已经显示完毕了,那么就不要占着电脑的资源不作为了呗!
所以就destroy(毁灭)呗!
如果你复制了那一段代码过去,并且成功的运行了,那么你将神奇的发现:
窗口显示了,但没有完全显示!!!
那么这是为什么呢?答案其实很简单
只是因为时间不等人呐。。。因为就这四句话电脑嗖~~~一下就运行完了!
那么我们只需要让电脑等我们一下就可以了呀,就像加一个死循环,一直让他停在那儿就好了。
因此完完全全正确的代码如下:
cv2.namedWindow("new", cv2.WINDOW_AUTOSIZE)
cv2.imshow("new", 0)
key = cv2.waitKey(0)
if key == 'q':
exit()
cv2.destroyAllWindows()
那么这个waitKey函数又是什么东东呢,会在下一篇文章说!