opencv库入门
opencv
OpenCV: 开源计算机视觉库
项目地址:https://gitcode.com/gh_mirrors/opencv31/opencv
免费下载资源
·
本文将对opencv库进行介绍,在介绍的同时以数字图像处理为切入点,分为理论部分和实践部分,其中理论部分会对图像的基础理论知识进行介绍,实践部分会通过opencv的使用进行介绍。
数字图像基本理论
矢量图和位图
矢量图是一串数学表达公式,illustrator中编辑的图形就是矢量图。位图是图像,由位置信息和灰度信息组成,Photoshop中编辑的图像就是位图。
像素
一幅图像的表示形式是二维点阵形式f(x, y),x和y表征位置信息,f表征灰度信息。
opencv实践部分
图像读取
我们使用cv2.imread()进行图像的读取,该函数会将不同格式的图像(JPEG, BMP等)以读入,并以ndarray的数据类型进行存储,对该对象的操作就是对numpy中ndarray的操作。
图像通道的分离与合并
我们使用cv2.split()对图像进行分离,用cv2.merge()对图像进行合并。需要注意的是opencv的颜色通道是BGR,就是rgb反过来。当然你也可以直接把读入的图像当做numpy来进行通道分分割与合并,那样会更快,因为numpy的底层是用c写的,而python是一个很慢很慢的语言。
alpha通道的使用
增加一个二维的alpha通道便可,你的shape会变成(height, width,4)。
特定像素的访问
特定像素的访问可以通过[]采用定位的方式进行。
像素的裁剪
像素的裁剪通过[]进行,像处理ndarray数据一样。
图像的放缩
图像的放缩通过cv2.resize实现。
读图片
要想无损失读取,就用这种方法。
img = cv2.imread(name, cv2.IMREAD_UNCHANGED)
pass
GitHub 加速计划 / opencv31 / opencv
163
15
下载
OpenCV: 开源计算机视觉库
最近提交(Master分支:4 个月前 )
1d701d16
Don't overflow pointer addition 4 小时前
e76924ef
In both cases we add negative value (as unsigned type), so
pointer addition wraps, which is undefined behavior.
6 小时前
更多推荐
已为社区贡献3条内容
所有评论(0)