opencv基础
-----------------------------------------------------------------------------参考教程OpenCV轻松如man:面向python 李立宪------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
环境搭建
opencv基础环境搭建
将对应安装包从官网下载好版本:python3 、opencv3、 pycharm
pip install opencv-python
pip install opencv-contrib-python//扩展模块
pip install pytesseract//谷歌开源的OCR的引擎
opencv模块
opencv模块 | 扩展模块 | ||||||||||
视频分析 | 2D特征提取 | 机器学习 | 异构与并行计算 | 图像拼换 | 超分辨 | 相机矫正与三维重建 | 分割与匹配 | 深度神经网络 | 三维可视化 | 对象检测 | |
Image processing | Hight-level GUI:窗口和图片显示 | ||||||||||
Core:像素级别的运算和操作 | |||||||||||
Imgcodecs:图像的读写 | VideoI/O:视频的读写 | ||||||||||
图像处理入门基础
图像是由像素构成的
图像分类:
- 二值图像:非黑即白,只有两个值0或1。
- 灰度图像:有灰、有黑、有白,有多个值 ,区间在0~255之间。
- 彩色图像:
RGB图像- 三个单色通道叠加,第0通道:R的取值0~255;第1通道:G的取值0 ~255;第2通道:B的取值0 ~ 255。
BGR图像-三个单色通道叠加,第0通道:B的取值0 ~255;第1通道:G的取值0 ~255;第2通道:R的取值0 ~255。
像素处理
读取像素:返回值=(位置参数)
//灰度图像,返回灰度值。
p = img[88,142]//在名为img的图像中提取第88行,142列的像素的值
print(p)
//BGR图像,返回B、G、R的值
p=img[78,125]//在名为img的图像中提取78行,125列的像素的值
print(p)//返回值为三个值
//BGR图像,分别返回B、G、R的值
blue=img[78,125,0]//在名为img的图像中提取第78行125列第0个通道
print(blue)//B通道上的像素值
green=img[78,125,0]
print(green)//G通道的像素值
red=img[78,125,0]
print(red)//R通道上的像素值
修改像素
import cv2//导入CV2的库
i = cv2.imread("D:\\lesson\\image\\test.bmp",cv2.IMREAD_UNCHANGED)//导入图片:用CV2的imread的方法读入该E盘的test.bmp文件,读入类型为.IMREAD_UNCHANGED即不更改原图片类型
p=i[100,100]//读取i图片的第100行100列的像素的值
print(p)//输出p的值
i[100,100]=255//更改i图片的第100行第100列的像素的值为255
p=i[100,100]//再次将像素值赋值给p
print(p)//输出p的值
//不赋值到变量上直接打印
import cv2//导入CV2的库
i = cv2.imread("D:\\lesson\\image\\test.bmp",cv2.IMREAD_UNCHANGED)//导入图片:用CV2的imread的方法读入该E盘的test.bmp的灰度图像,读入类型为.IMREAD_UNCHANGED即不更改原图片类型
print(i[100,100])//直接打印第100行100列的像素的值
i[100,100]=255//更改第100行100列的像素的值为255
print(i[100,100])//直接输出第100行100列的像素的值
import cv2//导入CV2的库
i = cv2.imread("D:\\lesson\\image\\test.png",cv2.IMREAD_UNCHANGED)//导入图片:用CV2的imread的方法读入该E盘的test.png的彩色图像,读入类型为.IMREAD_UNCHANGED即不更改原图片类型
print(i[100,100])
i[100,100,2]=255
print(i[100,100])
import cv2//导入CV2的库
i = cv2.imread("D:\\lesson\\image\\test.png",cv2.IMREAD_UNCHANGED)//导入图片:用CV2的imread的方法读入该E盘的test.png的彩色图像,读入类型为