美文网首页
Python CV2的基本操作

Python CV2的基本操作

作者: 想阳 | 来源:发表于2020-03-27 02:04 被阅读0次

Python CV2的基本操作

cv2.imread(filepath,flags)

filepath:要读入图片的完整路径

flags:读入图片的标志

  • cv2.IMREAD_COLOR:默认参数,读入一副彩色图片,忽略alpha通道
  • cv2.IMREAD_GRAYSCALE:读入灰度图片
  • cv2.IMREAD_UNCHANGED:顾名思义,读入完整图片,包括alpha通道

返回值是一个numpy对象

cv2.namedWindow(窗口名,属性)

窗口名是一个字符串,属性包括

cv2.WINDOW_AUTOSIZE:根据图像大小自动创建大小

cv2.WINDOW_NORMAL:窗口大小可调整

cv2.imshow(wname,img) 展示图片

第一个参数是显示图像的窗口的名字

第二个参数是要显示的图像(imread读入的图像),窗口大小自动调整为图片大小。

cv2.imwrite保存图片

使用函数cv2.imwrite(file,img,num)保存一个图像。

第一个参数是要保存的文件名,

第二个参数是要保存的图像。

可选的第三个参数,它针对特定的格式:对于JPEG,其表示的是图像的质量,用0 - 100的整数表示,默认95;对于png ,第三个参数表示的是压缩级别,默认为3。

  • cv2.IMWRITE_JPEG_QUALITY类型为 long ,必须转换成 int
  • cv2.IMWRITE_PNG_COMPRESSION, 从0到9 压缩级别越高图像越小
cv2.imwrite('1.png',img, [int( cv2.IMWRITE_JPEG_QUALITY), 95])
cv2.imwrite('1.png',img, [int(cv2.IMWRITE_PNG_COMPRESSION), 9])

cv2.flip 翻转图片

使用函数cv2.flip(img,flipcode)翻转图像,flipcode控制翻转效果。

  • flipcode = 0:沿x轴翻转
  • flipcode > 0:沿y轴翻转
  • flipcode < 0:x,y轴同时翻转

cv2.putText 在图像上输出文字

putText(img, text, org, fontFace, fontScale, color, thickness=None, lineType=None, bottomLeftOrigin=None) 
  1. img: 图像
  2. text:要输出的文本
  3. org: 文字的起点坐标 第一个是宽 第二个是高 以左上角为参考
  4. fontFace: 字体
  5. fontScale: 字体大小
  6. color: 字体颜色
  7. thickness: 字图加粗
import cv2
 
img = cv2.imread("01.jpg")
 
cv2.putText(img,"Print some text to img",(100,100),cv2.FONT_HERSHEY_SIMPLEX,1,(0,0,255))
 
cv2.imshow("img",img)
cv2.waitKey()
image.png

基本绘图

参考:https://blog.csdn.net/jnulzl/article/details/47056937

===============================接下来是视频操作

cv2.VideoCapture获取摄像头

VideoCapture()中参数是0,表示打开笔记本的内置摄像头,

参数是视频文件路径则打开视频,如cap = cv2.VideoCapture("../test.avi")

cap.isOpened()函数

返回true表示成功,false表示不成功

cap.read()

#正常使用
ret,frame = cap.read()

cap.read()按帧读取视频,ret,frame是获cap.read()方法的两个返回值。

其中ret是布尔值,如果读取帧是正确的则返回True,如果文件读取到结尾,它的返回值就为False。

frame就是每一帧的图像,是个三维矩阵。

cv2.waitKey(1)

#正确使用
c = cv2.waitKey(1)

表示等待键盘输入

参数是1,表示延时1ms切换到下一帧图像,对于视频而言;没有按键返回-1

参数为0,如cv2.waitKey(0)只显示当前帧图像,相当于视频暂停,;

参数过大如cv2.waitKey(1000),会因为延时过久而卡顿感觉到卡顿。

c得到的是键盘输入的ASCII码,esc键对应的ASCII码是27

ord() 函数 返回对应的 ASCII 数值

cap.release()

释放摄像头的资源

相关文章

网友评论

      本文标题:Python CV2的基本操作

      本文链接:https://www.haomeiwen.com/subject/ftjkuhtx.html