【OpenCV笔记】

目录

一、OpenCV是什么?

二、OpenCV部署方法

三、OpenCV模块简介

四、OpenCV基本操作

五、在图像上绘制图形

一、OpenCV是什么?

1.OpenCV是一个计算机视觉处理开源软件库,支持与计算机视觉和机器学习相关的众多算法

2.优势:基于C++实现,同时提供Py的thon、Ruby、Matlab等语言接口.OpenCV-Python是OpenCV的Python API,结合了OpenCV  C++ API和Python语言的最佳特性,并且可以跨平台使用

二、OpenCV部署方法

1.安装OpenCV-Python

pip install opencv-python

检测代码

import cv2
img=cv2.imread('color.jpg')
cv2.imshow("image", img)
cv2.waitKey(0)

2.在利用SIFT和SURF进行特征提取时,需安装

pip install opencv-contrib-python

三、OpenCV模块简介

最基础模块:

1.core模块:实现了 最核心的数据结构及其基本运算,如绘图函数、数组操作相关函数等
2.highgui模块:实现了视频与图像的读取、显示、存储等接口
3.imgproc模块:实现了图像处理的基础方法,包括图像滤波、图像的几何变换、平滑、阈值分割、形态学处理、边缘检测、目标检测、运动分析和对象跟踪等
对于图像处理其他更高层次的方向及应用,OpenCV也有相关的模块实现


更高层次模块:

1.features2d模块:用于提取图像特征以及特征匹配,其中nonfree模块:实现了一些专利算法,如sift特征。

2.objdetect模块:实现了一些目标检测的功能,经典的基于Haar、LBP特征的人脸检测,基于HOG的行人、汽车等目标检测,分类器使用Cascade Classification (级联分类)和Latent SVM
3.stitching模块:实现了图像拼接功能。

4.Flaan模块:快速近似最近邻搜索Flann和聚类Clustering算法

5.ml模块:机器学习模块

6.photo模块:图像修复和图像去噪

7.vedio模块:针对视频处理,如背景分离、前景检测、对象跟踪

8.calib3d模块:包含基本多视角几何算法

四、OpenCV基本操作

1.图像的读取:

cv.imread()

参数:

1>要读取的图像

2>读取方式:1以彩色模式加载图像,0以灰度模式加载图像,-1包括alpha通道的模式加载图像

2.图像的显示:

cv.imshow()

参数:

1>显示图像的窗口名称,字符串形式

2>要加载的图像(((((

3.注意:调用显示图像的API之后,要调用cv.waitKey()给图像绘制留下时间,否则窗口会出现无响应情况

4.保存图像:

cv.imwirte()

参数:

1>保存到的文件名

2>要保存的图像

import cv2 as cv
img=cv.imread("color.jpg",0)
cv.imshow('image',img)
cv.waitKey(0)
cv.destroyAllWindows()
cv.imwrite('image/color.jpg',img)

5.获取并修改图像中像素点:通过行列坐标获取像素点像素值,进行像素值修改

import numpy as np
import matplotlib.pyplot as plt
import cv2 as cv
img=cv.imread('snow.jpg')
#获取某个点像素值
px=img[100,100]
#仅获取蓝色通道的强度值
blue=img[100,100,0]
#修改某个位置像素值
img[100,100]=[0,0,0]
plt.imshow(img)
plt.show()
cv.waitKey(0)
cv.destroyAllWindows()

 五、在图像上绘制图形

import numpy as np
import cv2 as cv
import matplotlib.pyplot as plt
#创建图像
img=np.zeros((512,512,3),np.uint8)
#绘制直线
cv.line(img,(0,0),(511,511),(255,0,0),5)
#绘制圆形
cv.circle(img,(256,256),60,(0,255,0),-1)
#绘制方形
cv.rectangle(img,(100,100),(400,400),(0,0,255),5)
#图像上写字
cv.putText(img,'Hello!', (100,150),cv.FONT_HERSHEY_COMPLEX,5,(200,200,200))
#显示结果
plt.imshow(img[:,:,::-1])
plt.show()

猜你喜欢

转载自blog.csdn.net/m0_70964767/article/details/127022584