版权声明:如需转载请标注 https://blog.csdn.net/weixin_40973138/article/details/84445423
图像操作:
cv.imread(const String& filename,int flags) #读取图片。参数1:图片地址;参数2(默认正常读取):0 或2 为灰度图,1 为原图
cv.NamedWindow( const char* name, int flags ) #创建窗口,但不写也能show。参数1:窗口名字;参数2:窗口显示方式(为0 或cv.WINDOW_NORMAL,可以改变窗口大小;不写或
cv.WINDOW_AUTOSIZE则不可改变大小)
cv.imshow(const string& winname, InputArray mat) #显示图片窗口。**参数1**:窗口名称(若上文有NamedWindow() 函数,这个名称要与它一样);**参数2**:要显示的图片(如果窗口是用CV_WINDOW_AUTOSIZE(默认值)标志创建的,那么显示图像原始大小。否则,将图像进行缩放以适合窗口)
waitKey(K) #窗口显示时间,单位:毫秒。K=0,一直显示,直到按下数字键
destroyAllWindows() #删除建立的全部窗口,释放资源
cv.imwrite(adress, name) #图片另存为。参数一:图片保存地址;参数二:图片保存名称
np.array(image) #获取图像像素矩阵
cv.cvtColor(src, dst, int code) #实现色彩空间转换
视频操作:
cv.VideoCapture(0) #打开摄像头。0代表的是设备id,如果有多个摄像头,可以设置其他数值;也可以是视频文件地址,调用视频文件,如果要播放要设置帧的循环
.read() #读取摄像头。它能返回两个参数,第一个参数是bool型的ret,其值为True或False,代表有没有读到图片;第二个参数是frame,是当前截取一帧的图片
cv.flip(frame, 1) #翻转。 0:上下颠倒;大于0:水平颠倒;小于0:180旋转
cv.getTickCount() #返回自从某一时刻(比如计算机启动)开始,计算机总共经过的tick的次数,其需要结合getTickFrequency()函数使用,getTickFrequency()返回的是CPU在一秒钟内会发出的tick的次数
cv.inRange(src, lowerb, upperb) #输出二值化图像。对输入矩阵每一个像素点进行检测,当像素点的值介于lower 和upperb 之间的赋予1,否则赋予0
Numpy
np.zeros([height, width, channels], type) #创建一个图像,其像素值全为0
np.ones([height, width, channels], type) #创建一个图像,其像素值全为1
cv.bitwise_not(image) #二进制数据进行“非”操作
.fill(x) #将矩阵中填满x 值
.reshape([height, width, channels]) #改变矩阵维数
np.array([[a,b,c], [d,e,f], [g,h,i]], type) #创建矩阵
像素操作
cv.add(m1, m2) #加
dst = cv.subtract(m1, m2) #减
dst = cv.multiply(m1, m2) #乘
dst = cv.divide(m1, m2) #除
cv.mean(m1) #均值
cv.meanStdDev(m1) #方差
cv.bitwise_and(m1, m2) #“与”
cv.bitwise_or(m1, m2) #“或”
cv.bitwise_not(m1) #“非”
cv.bitwise_xor(m1, m2) #“异或”
cv.addWeighted(image, c, blank, 1-c, b) #计算两个图像阵列的加权和(调节对比度和亮度)。image 为目标图像;c 为对比度;blank 为全黑等大图像;b 为亮度。所得图片dst = image*c+blank*(1-c)+b