opencv-学习笔记(1)常用函数和方法。

                    opencv-学习笔记(1)常用函数和方法。


 

cv2.imread(filename,falg)

filename是文件名字

flag是读入的方式

cv2.MREAD_UNCHANGED :不进行转化,比如保存为了16位的图片,读取出来仍然为16位。

cv2.IMREAD_GRAYSCALE :进行转化为灰度图,比如保存为了16位的图片,读取出来为8位,类型为CV_8UC1。

cv2.IMREAD_COLOR :进行转化为三通道图像。

cv2.IMREAD_ANYDEPTH :如果图像深度为16位则读出为16位,32位则读出为32位,其余的转化为8位。

实际应用中,falg=0就是灰度图像,falg=1就是三通道图。这种方便

 

import cv2
import numpy as np
img=cv2.imread('1.jpg',0)//读入灰度图像
cv2.imshow('image',img)
cv2.waitKey(0)

看看输出

flag=0                                flag=1

           


 

cv2.imshow(‘窗口名字’,图像对象)

但是光光这个不够

还要下面加一句cv2.waitKey(0)

这个函数顾名思义就是等待键盘输入,0就是不停等待,5000就是5s内,函数会返回按下的ascii码


 

cv2. destroyAllWindows(“窗口名”)

可以关闭任何窗口

不加参数则是关闭所有窗口


 

 cv2.namedWindow('新建窗口名',flag)

创建一个窗口名叫image

flag=cv2.WINDOW_AUTOSIZE时候就自动适应大小这是默认的

flag=cv2.WINDOW_NORMAL就是图片自适应窗口大小

# -*- coding: utf-8 -*-
"""
Created on Thu May 31 17:32:11 2018

@author: Administrator
"""

import cv2
import numpy as np
cv2.namedWindow('image',cv2.WINDOW_NORMAL)
img=cv2.imread('1.jpg',1)
cv2.imshow('image',img)
cv2.waitKey(0)

现在就可以图片自适应窗口了


 

cv2.imwrite('图像名字',图像对象)

用来保存图片,效果如下


cv.waitKey()

这个函数是有返回值的,我们来看看则么用

import cv2
import numpy as np

img=cv2.imread('1.jpg',1)
cv2.imshow('image',img)
k=cv2.waitKey(0)&0xFF#64位系统必须添加
if k==27:        #ESC退出不保存
    cv2.destroyAllWindows()
elif k==ord('s'):    #s键保存
    cv2.imwrite('fuck2.jpg',img)
    cv2.destroyAllWindows()            

matplotlib

这个py库的使用是

from matplotlib import pyplot as plt

import cv2
import numpy as np
from matplotlib import pyplot as plt

img=cv2.imread('1.jpg',1)
cv2.imshow('image',img)
cv2.waitKey(0)
plt.imshow(img,cmap='gray',interpolation='bicubic')
plt.xticks([]),plt.yticks([])
plt.show()

这个代码分别用opencv和matplotlib显示了图像可以看出来都相反了?

因为

 

 

 


 

 opencv用摄像头捕捉视频

# -*- coding: utf-8 -*-
"""
Created on Thu May 31 17:32:11 2018

@author: Administrator
"""

import numpy as np
import cv2

#打开摄像头
cap=cv2.VideoCapture(0)

while(True):
    #一帧一帧捕获视频
    ret,frame=cap.read()
    cv2.imshow("frame",frame)
    #q键退出
    if cv2.waitKey(1)&0xFF==ord('q'):
        break;
cap.release()
cv2.destroyAllWindows()

 

 

效果如下

 

 

 

posted on 2018-05-31 22:06  邓佳程  阅读(451)  评论(0编辑  收藏  举报

导航