openCV:窗口创建

窗口的创建

我们在学习openCV的时候,第一步往往都是创建一个窗口。

那么在openCV中创建一个窗口只需要三个函数即可完成:)

  • namedWindow()
  • resizeWindow()
  • imshow()
  • destroyAllWindows()
多写一个,买三送一

创建一个窗口,只需要将上面四个函数进行排列组合即可完成,但是排列组合的方案数太多了,挑不过来啊。
那么,就请往下看…

cv2.namedWindow("new", cv2.WINDOW_AUTOSIZE)
cv2.resizeWindow("new", 640, 480)
cv2.imshow("new", 0)

cv2.destroyAllWindows()

上面这段代码就是正确的排列组合,这样就可以创建一个窗口,并且在电脑屏幕上显示(仅仅显示一瞬间(⊙o⊙)?),为什么只是显示一瞬间?这个问题后面解决,现在先把这四个函数的含义及其参数的含义解释一下。。

1.namedWindow()

   见名知意:namedWindow   =》   给窗口起个名字呀~

   所以这个函数的第一个参数就是这个窗口的名字,比如这儿的“new”

   而这函数的第二个参数就是openCV所规定的一个默认参数,我们一般有两种选择:
   WINDOW_AUTOSIZE:不可以用鼠标改变窗口大小
   WINDOW_NORMAL:可以用鼠标改变窗口大小

2.resizeWindow()

  见名知意:resizeWindow   =》      给窗口确定大小呀~

 如果要给窗口确定大小,那么第一个参收就是告诉这个函数,我们要确定那个窗口的大小,所以第一个参数就是窗口名。

 而第二三个参数当然就是窗口的宽和高。。。

3.imshow()

 前两个函数以及把窗口创建好了,那么这一步自然而然就到了显示窗口的时候。

 imshow,也就是 image show。。。

 所以第一个参数就是要显示的窗口的名字。而此处第二个参数为0,0嘛,就是窗口中啥都没有,一片空白呗,没什么大不了的。

4.destroyAllWindows()

 窗口都已经显示完毕了,那么就不要占着电脑的资源不作为了呗!
 所以就destroy(毁灭)呗!

问题解决

如果你复制了那一段代码过去,并且成功的运行了,那么你将神奇的发现:

窗口显示了,但没有完全显示!!!

那么这是为什么呢?答案其实很简单

只是因为时间不等人呐。。。因为就这四句话电脑嗖~~~一下就运行完了!

那么我们只需要让电脑等我们一下就可以了呀,就像加一个死循环,一直让他停在那儿就好了。

因此完完全全正确的代码如下:

cv2.namedWindow("new", cv2.WINDOW_AUTOSIZE)
cv2.imshow("new", 0)

key = cv2.waitKey(0)
if key == 'q':
    exit()

cv2.destroyAllWindows()

那么这个waitKey函数又是什么东东呢,会在下一篇文章说!

你可能感兴趣的:(openCV,opencv,python,pycharm)