这一周利用中午放学,晚上上完自习的空余时间进行学习,以下是这周学习笔记:
关于在画线,画图形操作中有
unit8
其表示意思为无符号八位整数,表示范围是[0,255]的整数.。
以下是对一些函数学习的理解,以及参数设置:
np.zeros()#shape:形状;dtype:数据类型可选参数,默认numpy.float64
font=cv2.FONT_HERSHEY_SIMPLEX#字体的设置
events=[i for i in dir(cv2) if 'EVENT'in i]#鼠标事件回调
'''
鼠标回调函数的响应事件对应值:
EVENT_FLAG_ALTKEY = 32 #摁住Ctrl
EVENT_FLAG_LBUTTON = 1 摁住左键
EVENT_FLAG_MBUTTON = 4 摁住中键
EVENT_FLAG_RBUTTON = 2 摁住右键
EVENT_FLAG_SHIFTKEY = 16 摁住Shift
EVENT_LBUTTONDBLCLK = 7 左键双击
EVENT_LBUTTONDOWN = 1 左键击下
EVENT_LBUTTONUP = 4 左键弹起
EVENT_MBUTTONDBLCLK = 9 中键双击
EVENT_MBUTTONDOWN = 3 中键击下
EVENT_MBUTTONUP = 6 中键弹起
EVENT_MOUSEHWHEEL = 11 滚动条向左,flags>0。向右,flags<0
EVENT_MOUSEMOVE = 0 鼠标移动
EVENT_MOUSEWHEEL = 10 滚动条向上,flags>0。向下,flags<0
EVENT_RBUTTONDBLCLK = 8 中键双击
EVENT_RBUTTONDOWN = 2 中键击下
EVENT_RBUTTONUP = 5 中键弹起
'''
学习中遇到一个比较有意思的模块,就是利用滑动条来调整颜色,使得背景颜色的RBG值不断改变,获得其对应背景颜色改变,初步体验到机器视觉的初步的一个感受。
cv2.createTrackbar()
第一个参数是滑动条的名字,第二个参数是滑动条被放置窗口的名字,第三个参数是滑动条的默认位置。第四个参数是
滑动条的最大值,第五个函数是回调函数,每次滑动条的滑动都会调用回调函数。回调函数通常都会含有一个默认参数,就是滑动条的位置。
关于图像的读取:
img = cv2.imread()
括号内存入图像的存储地址,最好将存储的图像存在和代码一样的位置可以用img[]读取对应的图像矩阵信息
在读取图像时遇到一些问题,在调用一些函数时直接在读入图像名称加后缀格式就行(我的代码和图像存在一个地方,如果不是得添加地址索引)而另一些函数就不行,即使代码和图片在一个存储地方,所以得加地址索引,但是索引中有错误:
OpenCV Error: Assertion failed (size.width>0 && size.height>0) in cv::imshow
在网上百度得知,在添加地址索引时,得加上doule‘/’->'//'(许多例子上都是单斜杠)
呃呃,还有,在练习图片合成时得图片格式一样就是,就是矩阵格式得一样,比如说第一张照片是60X60的,而另一张也得60X60
最后附上自己写的一个(原有基础改动的)的一个领域电脑摄像头读取进来的视频进行二值化处理代码:
import cv2
import numpy as np
cap = cv2.VideoCapture(0)
while(1):
ret,frame = cap.read()
img2gray = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)#(图像格式转换器)
ret,mask = cv2.threshold(img2gray,125,255,cv2.THRESH_BINARY)#图像阈值处理器125位下限,255为上限
#ret暂且记为阈值初始此处为125,mask为处理后的图像
cv2.imshow('new',mask)
k = cv2.waitKey(5)&0xFF
if k == 27:
break
cv2.destroyAllWindows()
这是第二次的学习笔记,可能文字描述比较少,是因为在中午,晚上时间都不是很充足,所以就先只是学习的感悟写在写字板上,然后周末再组织一下,难免有些零散,还是在想办法克服吧,,,,加油呐,少年,你又更近了一步哦!