visual执行到imshow时显示未经处理的异常_基于Opencv计算机视觉图像处理(1)

本文介绍了在使用OpenCV进行图像处理时遇到的imshow显示未经处理的异常问题,以及如何解决。首先讲解了环境依赖,通过pip安装opencv-python。接着展示了一个实例,包括打开和显示图片的操作,以及摄像头的使用。在处理图像帧时,讨论了颜色空间转换,并提到了waitKey()函数的作用。文章最后提到OpenCV中颜色转换的多样性和waitKey()的键盘监听功能。
摘要由CSDN通过智能技术生成
OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法 毕业设计的内容涉及到图像处理和机械控制,所以选择使用opencv进行图像处理,机械控制部分仍然采用MEGA2560作为主控板  我之前的项目大多使用python作为开发工具,所以这个系列是基于python来做

环境依赖和opencv包

1.环境: python3.7+windows10

2.函数包:

直接pip install opencv-python即可

实例

实例1-1:打开一张图片并且显示

import cv2img = cv2.imread('lena.jpg', 0)cv2.imshow('lena', img)cv2.waitKey(1000)

#加载函数

import cv2

#读取图片

img = cv2.imread('lena.jpg', 0)

#lena.jpg路径路径中不能有中文

#彩色图默认值(1),灰度图(0),包含透明通道的彩色图(-1)

#显示图片

cv2.imshow('lena', img)

#lean窗口名称(中文显示异常)

#img图片的二值化形式

实例1-2:打开摄像头并实时显示
import cv2cap = cv2.VideoCapture(1)while(1):    ret,frame = cap.read()    flag=cv2.COLOR_BGR2GRAY    gray = cv2.cvtColor(frame, flag)    cv2.imshow('windows', gray)    if cv2.waitKey(1) == 27:        break   

#创建一个摄像头实例

name = cv2.VideoCapture(1)

    参数1指的是摄像头的编号,如果你电脑上有两个摄像头的话,访问第2个摄像头就可以输入1

#获取一帧

 ret,frame = cap.read()

    ret是一个布尔值,表示当前这一帧是否获取正确;frame是获取的二值化值形式的图片

#颜色空间转换

gray = cv2.cvtColor(input_image, flag)

    #input_image要转换的图片,flag是转换类型

在opencv中有超过150种颜色空间转换方法,但是经常用的只有BGR-灰度图和BGR-HSV。

BGR和灰度图的转换使用 cv2.COLOR_BGR2GRAY,BGR和HSV的转换使用 cv2.COLOR_BGR2HSV

这个函数功能很强大,后面用到会具体介绍

#图像展示延时

cv2.waitKey(delay)

函数功能:

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

同时可以接收键盘输入的值,返回值为当前键盘按键的ASCII 数值,是在一个给定的时间内(单位ms)等待用户按键触发

常见 : 

1.设置 waitKey(0) , 则表示程序会无限制的等待用户的按键事件(卡在这一步)
if cv2.waitKey(1) == 27:        break  
2.等待用户触发事件等待时间为1ms, 如果在这个时间段内,用户按下 ESC(ASCII码为27) , 执行 if 体。 如果没有按,if函数不做处理

2d52e8dc5f0352d9621fee615542bd62.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值