openCV简介

 openCV是一个开源的跨平台的计算机视觉库。

支持windows、linux、android、mac OS 等操作系统,实现了图像处理和计算机视觉方面多个算法。提供多种语言的编程接口,c/x++/python

openCV图形处理

1、采集图像

  • 通过摄像头采集图片:
cv2.VideoCapture(摄像头来源) #指定0表示默认摄像头,指定1可更换

while video_capture.isOpened():
    success, frame = video_capture.read()
    if not success:
        break

  • 从摄像头获取图像
cap.read() #返回布尔值 和 一帧图像
  • 释放捕获对象
cap.release()

完整:

# 引入OpenCV库
import cv2
# 调用摄像头进行拍照
cap = cv2.VideoCapture(0)
# 获取一帧图片
# 如果捕获成功,代码中ret值为真,img为捕获的图像。
ret, img = cap.read()
# 释放捕获对象
cap.release()

 2、读取图片

img=cv2.imread(图片路径,标记) #标记之图片读取方式
'''
0/cv2.IMREAD_COLOR :读入彩色图片
1/cv2.IMREAD_GRAYSCALE  :以灰度模式读入图片
2/CV2.IMREAD_UNCHANGED  :读入图像包含alpha通道
'''

3、展示图片

cv2.imshow(窗口名称,图片)

# 等待用户关闭图片窗口
cv2.waitKey(0)
# 销毁创建的所有窗口
cv2.destroyAllWindows()

4、保存图片

cv2.imwrite(保存路径,图片)

5、色彩空间转换

常用的色彩空间有:

(1)RGB色彩空间,依据人眼识别的颜色定义。

(2)HSV与HSL颜色空间

HSV:H 是色调(hue),S 是饱和度(saturation), V 是明度(value)

HSL:H 是色调(hue),S 是饱和度(saturation),L 是亮度(lightness)

(3)灰度空间

每中颜色都有三个亮度值,根据公式:

Gray = R*0.299 + G*0.587 + B*0.114计算出灰度值

openCV默认采用BGR颜色空间(因为当时的摄像头和软件提供商大多采用这种方式)。色彩空间转换方式:

cv2.cvtColor(图片对象,转换类型)
'''
转换类型有
cv2.COLOR_BGR2GRAY
cv2.COLOR_BGR2HSV
'''

#可以通过下述代码获取所有转换类型
import cv2
flags=[i for in dir(cv2) if i startswith('COLOR_')]
print(flags)
  • 图片基本操作完整实例

import cv2
# 读取图片
image_path = "images/girl.jpg"
img = cv2.imread(image_path,1)
# 窗口展示图片
cv2.imshow('cute girl',img)
# 等待用户关闭图片窗口
cv2.waitKey(0)
# 销毁创建的所有窗口
cv2.destroyAllWindows()

# 保存图片为girl-copy.png
cv2.imwrite('images/girl-copy.png',img)

 

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐