深度学习基础-opencv(一)python实现

opencv用来做什么

对数据进行预处理和后处理。相比于PIL来说,opencv能够实现的功能更多

核心操作

opencv拿来做什么

对数据进行预处理和后处理。相比于PIL来说,opencv能够实现的功能更多

常见的图像

1.在图像中有宽,高,通道等概念。我们常见的图像格式有bmp(位图),jpg,png
bmp:是一种原始的图像格式,存储的空间非常高
图像压缩:有损和无损。一般是通过傅里叶变换,将时域转频域然后去掉一些东西得到的。
jpg:jpg是对bmp的图像进行有损压缩后得到的。
png:jpg一般是三通道(w,w,c),png一般是四通道(h,w,c,a)通道a代表透明度。

图像读取

1.读取图片

import cv2
img=cv2.imread(r"路径")#可以设置读出的格式
cv2.imshow("pic",img)#数据类型是np.ndarray
cv2.waitKey(0)#读出的是HWC

2.写图像

import numpy as np
import cv2
img=np.empty((200,200,3),np.uint8)
img[...,0]=255#...表示前面的维度都保留,取索引为0的通道
img[...,1]=0#读出来的为bgr,和一般的rgb有差别
img[...,2]=0
img=img[...,::-1]#将图像转为RGB格式,numpy数组操作
cv2.imwrite("img_save.jpg",img)

3.视频读取

import cv2
cap=cv2.VideoCapture("F:\\1.mp4")#读取摄像头,视频,或者给一个rtsp的视频流
while True:
    '''
    视频是由图片一帧一帧组合而成的
    所以用一个循环来一帧一帧读取视频图片
    ret表示是否读取成功
    frame表示读取出来的图像
    '''
    ret,frame=cap.read()
    cv2.imshow("frame",frame)
    if cv2.waitKey(10)&0xFF==ord("q"):#读取一张图片之后等待的时间和一个监听按键
        break
cap.release()
cv2.destroyAllWindows()

色彩空间与转换
HSV颜色空间
HSV格式中,H(色彩/色度),S(饱和度),V(亮度),可以用来表示一种颜色的深浅度,HSV的像素是连续的。
对比度:对亮度进行操作
在每一个像素上进行一个乘法运算即乘以a,再加上一个b

import cv2

src = cv2.imread(r"1.jpg")

# dst = cv2.cvtColor(src, cv2.COLOR_BGR2GRAY)
# dst = cv2.cvtColor(src, cv2.COLOR_BGR2HSV)
# print(dst.shape)
dst2 = cv2.convertScaleAbs(src, alpha=6, beta=1)#alpha为进行放大的倍数

cv2.imshow("src show", src)
cv2.imshow("dst show", dst2)
cv2.waitKey(0)

在这里插入图片描述
画图
图像坐标是满足笛卡尔坐标系的

import cv2
import numpy as np

img = cv2.imread(r"1.jpg")
'''
thickness设置为-1,表示图形的填充
'''
cv2.line(img, (100, 30), (210, 180), color=(0, 0, 255), thickness=2)
cv2.circle(img, (50, 50), 30, (0, 0, 255), 2)
cv2.rectangle(img, (100, 30), (210, 180), color=(0, 0, 255), thickness=2)
cv2.ellipse(img, (100, 100), (100, 50), 0, 0, 360, (255, 0, 0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值