和我一起入门OpenCV with Python Day2

二、语法介绍

(二)图像处理

1. 绘制图像

#画线
cv.line(img,start,end,color,thickness)
#画圆形
cv.circle(img,centerpoint,r,color,thickness)
#画矩形
cv.rectangle(img,leftupper,rightdown,color,thickness)
#加字
cv.putText(img,text,station,font,fontsize,color,thickness,cv.LINE_AA)

实操

import numpy as np
import cv2 as cv
import matplotlib.pyplot as plt
#创建一个空白的图像
img=np.zeros((666,666,3),np.uint8)
#画画
cv.line(img,(0,0),(666,666),(66,6,66),6)
cv.rectangle(img,(6,6),(66,66),(6,66,6),16)
cv.circle(img,(6,6),66,(6,6,6),-1)
font=cv.FONT_HERSHEY_SIMPLEX
cv.putText(img,'zrx',(10,500),font,6,(255,255,255),26,cv.LINE_AA)
#来吧展示
plt.imshow(img[:,:,::-1])
plt.title('Chxongz'),plt.xticks([]),plt.yticks([])
plt.show()

代码运行结果为
在这里插入图片描述

2. 访问和操作像素点


import cv2 as cv

img=cv.imread('图像路径')
dimensions=img.shape
#图像大小(img.size=height × width × channels)
total_number_of_elements=img.size
#图像数据类型(图像数据类型是uint8)
image_dtype=img.dtype
#访问像素值
(b,g,r)=img[2,2]
#仅访问蓝色通道像素值
b=img[2,2,0]#行,列,索引
#修改像素值
img[2,2]=(255,0,0)
#获取图像的左上角(提供切片)
top_left_corner=img[0:22,0:22]

#灰度(只有一个通道)
gray_img=cv.imread('图像路径',cv.IMREAD_GRAYSCALE)
dimensions=gray_img.shape
i=gray_img[22,22]#像素强度
gray_img[22,22]=0

3. 图像通道的拆分与合并

b,g,r=cv.split(img)
img=cv.merge((b,g,r))

4. 色彩空间的改变

cv.cvtcolor(img,转换类型)

常见的转换类型有:

  • cv.COLOR_BGR2GRAY : BGR↔Gray
  • cv.COLOR_BGR2HSV: BGR→HSV

5. 图像的加法(我真的狠喜欢这一趴)



import numpy as np
import cv2 as cv
import matplotlib.pyplot as plt


img1=cv.imread("C:/Users/LEGION/Pictures/bqb/ku.jpg")
img2=cv.imread("C:/Users/LEGION/Pictures/bqb/ganfan.jpg")

img3=cv.add(img1,img2)
img4=img1+img2
img5=cv.addWeighted(img1,0.3,img2,0.7,0)#img5 = α⋅img1 + β⋅img2 + γ

fig,axes=plt.subplots(nrows=1,ncols=3,figsize=(10,8),dpi=100)
axes[0].imshow(img3[:,:,::-1])
axes[0].set_title("cv")
axes[1].imshow(img4[:,:,::-1])
axes[1].set_title("directly")
axes[2].imshow(img5[:,:,::-1])
axes[2].set_title("mix")
plt.show()




原图

运行结果
哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈真的很好笑哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈好神奇
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值