Opencv模块组织结构----opencv小案例实现

进入opencv官网,查看文档看opencv的响应模块
在这里插入图片描述
下载win或ios的pack,里面有响应模块源代码:
在这里插入图片描述

calib3d模块主要用于相机等
core模块非常重要,完全掌握,core中包括opencv的绘图操作等基础部分
dnn模块和神经网络相关
features2d模块和图像焦点检测相关,比如做图像匹配
higngui模块和图像交互相关,很重要,在当前课程使用较少
imgcodecs很重要
mi模块也很重要
photo模块图片处理
shape模块
stitch模块,图片连接等操作
video描述视频信息

案例一:图片读取
import cv2
img=cv2.imread('b.png',1)
#完成图片的写入
cv2.imwrite('image1.jpg',img)#这里的img已经是解码之后的数据
#写入的图片名称
#data数据,是图片解码之后的数据
案例二:图片写入
#有四个过程:文件读取,封装格式解析,数据解码,数据加载
img=cv2.imread('b.png',1)
cv2.imshow("image",img)
cv2.waitKey(0)
#图片格式:jpg,png,不同的jpg和png有不同的文件头和文件数据,数据是指图片压缩之后的编码数据
#图片编码可以减小图片的体积,提高压缩比,不同的压缩比对应不同的压缩大小
案例三:不同图片质量保存

实现不同压缩比的图片保存

import cv2
#jpg压缩
img=cv2.imread('b.png',1)
cv2.imwrite('one.jpg',img,[cv2.IMWRITE_JPEG_CHROMA_QUALITY,0])
#第三个参数描述的是图片质量,范围是0-100
#如果压缩后的图片只有10几k,就会严重失真,是有损压缩

cv2.imwrite('three.png',img,[cv2.IMWRITE_PNG_COMPRESSION,0])
#png图片是无损压缩,无法设置图片的透明度
#压缩比:jpg 0 压缩比高 ,范围0-100
# png 0 压缩比低,范围0-9

下面是最后图片的大小结果截图:
在这里插入图片描述

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

案例四:像素的基本操作(像素读取写入)
  • 图片由像素点组成,放大后为一个个方块,存储rgb三色值

  • 颜色深度:8bit,0-255

  • 图片的宽高:640*480表示图片在水平方向有640个像素点,在水平方向由480个像素点

  • 图片大小1.14M,宽720px,高547px

    所以1.14M=720 * 547 * 3 * 8bit/8 (B)=1.14M

    乘以3是因为rgb三色,乘以8是因为每一色为8bit,最后转换成M

    1B=8b(bit)

  • rgb,alpha:透明度

  • bgr:与rgb对应,是另一种表示方式,这里的b是blue通道

import cv2
img=cv2.imread('b.png',1)
#x,y轴方向表示
#x:图片的竖直方向
#y:图片的水平方向
#以左上角的点为原点

#像素读取
(b,g,r)=img[100,100]#坐标系上(100,100)处的像素点三色
print(b,g,r)


#像素写入
# 10 100----110 100,y不变,x增大
for i in range(1,100):
    img[10+i,100]=(255,0,0)#蓝色
    
cv2.imwrite('px.jpg',img)
cv2.waitKey(1000)#1000ms,当前时间过去后程序会继续执行

结果:
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值