opencv基础

一、基础介绍

  1. 图像坐标
    图像的原点是左上角的点,终点在右下角。
    在这里插入图片描述

  2. opencv读取的颜色是BGR的。

    img = cv2.imread(image)
    cv2.cvtColor(img,cv2.COLOR_BGR2RGB)#颜色转换 BGR ——> RGB

二、基本操作

  1. 绘制直线、矩形及圆
    新建一个全黑的图,作为底图.
    图像是3维的,否则后面显示出来的图片是灰度图
blank = np.zeros((300,300,3),dtype = np.uint8)

画直线

color = (0,0,255)
img_line = cv2.line(blank,(0,0),(100,100),color = color,thickness=10)#原图blank也变了
show(img_line)

在这里插入图片描述
画矩形

color = (0,255,255)
img_rectangle = cv2.rectangle(blank,(100,100),(200,200),color = color,thickness=10)
show(img_rectangle)

在这里插入图片描述
画圆

color = (255,0,255)
img_circle = cv2.circle(blank,(200,200),50,color = color,thickness=10)
show(img_circle)

在这里插入图片描述
当thickness为负数时,填充效果。
在这里插入图片描述

  1. 图像翻转
    cv2.flip()有返回值,不会改变原始图像
    1 水平翻转
img1 = cv2.flip(img,1)
show(img)
show(img1)

注意看,是真的水平翻转了
在这里插入图片描述
垂直翻转

img0 = cv2.flip(img,0)
show(img)
show(img0)

在这里插入图片描述
3. 图像加、减法操作
uint8表示的数值范围:0~255.
加法
图像加法操作:当累加和超过255,用255代替。一般加法:当累加和超过255,和为累加和-255.
图像加法让图像变亮
在这里插入图片描述
在这里插入图片描述
减法
图像减法操作:当差值小于0,用0代替。一般加法:当差值小于0,结果为256+差值。
图像减法让图像变暗
在这里插入图片描述

在这里插入图片描述
4. 按位操作
按位与:bitwise_and #遇黑变黑,用来屏蔽
按位或:bitwise_or # #遇白变白,用来屏蔽
按位疑惑:bitwise_xor
按位非:bitwise_not

按位与

img = cv2.bitwise_and(img_circle,img_rectangle)
fig = plt.figure()
fig.add_subplot(1,3,1)
show(img_rectangle)
fig.add_subplot(1,3,2)
show(img_circle)
fig.add_subplot(1,3,3)
show(img)
plt.show()


在这里插入图片描述

在这里插入图片描述
异或
在这里插入图片描述

在这里插入图片描述
5. 遮挡
通过按位操作中 按位与:bitwise_and #遇黑变黑,用来屏蔽按位或:bitwise_or # 遇白变白,用来屏蔽,可将指定区域变白或变黑,达到屏蔽效果。

fig = plt.figure(figsize=(15,50))
img = read_image('face.png')
fig.add_subplot(1,3,1)
show(img)
blank = np.zeros(img.shape,dtype=np.uint8)
fig.add_subplot(1,3,2)
show(blank)
white = (255,255,255)
img_rectangle = cv2.rectangle(blank,(15,15), (img.shape[1]-10,img.shape[0]-10),color = white,thickness = 10)
fig.add_subplot(1,3,3)
show(cv2.bitwise_or(img,img_rectangle))

按位或的遮挡, 有相框的效果
在这里插入图片描述

在这里插入图片描述
6. 切分通道及合并通道

(R, G, B) = cv2.split(image)#切分通道
merged = cv2.merge([R,G,B])#合并通道
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值